| 比赛 |
五一大礼包 |
评测结果 |
AAAAAAAAAA |
| 题目名称 |
国王游戏 |
最终得分 |
100 |
| 用户昵称 |
梦那边的美好ME |
运行时间 |
0.158 s |
| 代码语言 |
C++ |
内存使用 |
3.77 MiB |
| 提交时间 |
2026-05-04 10:41:16 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
#define ll long long
struct node{
ll a,b;
}t[1100];
ll n,sum[5010],nw[5050],ans[5010];
ll al,sl;
bool cmp(node aa,node bb){
if (aa.a*aa.b!=bb.a*bb.b){
return aa.a*aa.b<bb.a*bb.b;
}else{
return aa.a<bb.a;
}
}
void sv1(ll k){
ll x=0,i,j;
for (i=sl;i>=1;i--){
nw[i]=(sum[i]+x*10)/k;
x=(sum[i]+x*10)%k;
}
i=sl;
while (i>1&&nw[i]==0) i--;
ll check=0;
if (i>al) check=1;
else if (i==al){
for (int j=i;j>=1;j--){
if (nw[j]>ans[j]){
check=1;
break;
}
if (nw[j]<ans[j]){
check=-1;
break;
}
}
}
if (check==1){
al=i;
for (j=1;j<=i;j++){
ans[j]=nw[j];
}
}
}
void sv2(ll k){
for (int i=1;i<=sl;i++){
sum[i]=sum[i]*k;
}
for (int i=1;i<=sl;i++){
sum[i+1]+=sum[i]/10;
sum[i]%=10;
}
while (sum[sl+1]>0){
sl++;
sum[sl+1]+=sum[sl]/10;
sum[sl]%=10;
}
}
int main(){
freopen("kinggame.in","r",stdin);
freopen("kinggame.out","w",stdout);
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
cin>>n;
cin>>t[0].a>>t[0].b;
for (int i=1;i<=n;i++){
cin>>t[i].a>>t[i].b;
}
sl=1;
sum[1]=1;
sort(t+1,t+n+1,cmp);
sv2(t[0].a);
for (int i=1;i<=n;i++){
sv1(t[i].b);
sv2(t[i].a);
}
for (int i=al;i>=1;i--){
cout<<ans[i];
}
return 0;
}