| 比赛 |
五一大礼包 |
评测结果 |
AAAAAAAAAA |
| 题目名称 |
国王游戏 |
最终得分 |
100 |
| 用户昵称 |
Ruyi |
运行时间 |
0.039 s |
| 代码语言 |
C++ |
内存使用 |
3.69 MiB |
| 提交时间 |
2026-05-04 09:59:02 |
显示代码纯文本
#include<bits/stdc++.h>
#define ll long long
#define N 1001
using namespace std;
ll n,ans[N+1],len=1,lres;
struct node{ll a,b;}c[N];
bool cmp(node x,node y){return x.a*x.b<y.a*y.b;}
int main(){
freopen("kinggame.in","r",stdin);
freopen("kinggame.out","w",stdout);
cin>>n;
for(int i=0;i<=n;i++) cin>>c[i].a>>c[i].b;
sort(c+1,c+n+1,cmp);
ans[1]=c[0].a;
for(int i=1;i<n;i++){
for(int j=1;j<=len;j++){
ans[j]*=c[i].a;
ans[j]+=lres;
lres=ans[j]/100000;
ans[j]%=100000;
}
if(lres>0) ans[++len]=lres;
lres=0;
}
for(int i=len;i>0;i--){
lres+=ans[i];
ans[i]=lres/c[n].b;
lres%=c[n].b;
lres*=100000;
}
while(ans[len]==0&&len>0) len--;
if(ans[len]==0) cout<<1;
else cout<<ans[len];
for(int i=len-1;i>0;i--){
if(ans[i]<10) cout<<"0000";
if(ans[i]<100&&ans[i]>=10) cout<<"000";
if(ans[i]<1000&&ans[i]>=100) cout<<"00";
if(ans[i]<10000&&ans[i]>=1000) cout<<"0";
cout<<ans[i];
}
return 0;
}