比赛 贪心题目练习 评测结果 AAAAWAWWWA
题目名称 国王游戏 最终得分 60
用户昵称 duck 运行时间 0.035 s
代码语言 C++ 内存使用 3.37 MiB
提交时间 2025-03-22 09:21:49
显示代码纯文本
#include<bits/stdc++.h>
#define int long long 
using namespace std;
int n;
struct yazi{
	long long a,b,c;
}duck[10086];
int cmp(yazi x,yazi y){
	if(x.b==y.b){
		return x.a <y.a ;
	}
	return x.b <y.b ;
}
int cmp1(yazi x,yazi y){
	if(x.a==y.a){
		return x.b <y.b ;
	}
	return x.a <y.a ;
}
int cmp2(yazi x,yazi y){
	if(x.a==y.a){
		return x.b <y.b ;
	}
	return x.a >y.a ;
}
long long maxx=-1,du=-1;
signed main(){
    freopen("kinggame.in","r",stdin);
    freopen("kinggame.out","w",stdout);
	cin>>n;
	for(int i=0;i<=n;i++){
		cin>>duck[i].a>>duck[i].b;
	}
	sort(duck+1,duck+1+n,cmp);
	duck[0].c =duck[0].a ;
	for(int i=1;i<=n;i++){
		duck[i].c =duck[i-1].c *duck[i].a;
		maxx=max(maxx,duck[i-1].c/duck[i].b);
	}
	sort(duck+1,duck+1+n,cmp1);
	for(int i=1;i<=n;i++){
		duck[i].c =duck[i-1].c *duck[i].a;
		du=max(du,duck[i-1].c/duck[i].b);
		if(maxx<duck[i-1].c/duck[i].b){
			break;
		}
	}
	sort(duck+1,duck+1+n,cmp2);
	long long du=-1;
	for(int i=1;i<=n;i++){
		duck[i].c =duck[i-1].c *duck[i].a;
		du=max(du,duck[i-1].c/duck[i].b);
		if(maxx<duck[i-1].c/duck[i].b){
			break;
		}
	}
	maxx=min(du,maxx);
	cout<<maxx;
	fclose(stdin);
	fclose(stdout);
	return 0;
}