比赛 |
贪心题目练习 |
评测结果 |
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;
}