比赛 五一大礼包 评测结果 AAAAAAAAAA
题目名称 国王游戏 最终得分 100
用户昵称 ChenBp 运行时间 0.137 s
代码语言 C++ 内存使用 3.70 MiB
提交时间 2026-05-04 11:14:06
显示代码纯文本
#include<iostream> 
#include<algorithm>
#include<stack>
#include<cstdio>
using namespace std;
typedef long long ll;
struct node{
    int a,b;
}a[1003];
bool cmp(node x,node y){
    return (ll)x.a*x.b<y.a*y.b;
//    return (ll)x.a*y.b<(ll)y.a*x.b;
}
int tms[1000006],ans[1000006],tmp[1000006];
int len1,len2,len3;
void ch(int x){
    ll jw=0;
    for(int i=1;i<=len1;i++){
        jw+=tms[i]*x;
        tms[i]=jw%10;
        jw/=10;
    }
    while(jw){
        tms[++len1]=jw%10;
        jw/=10;
    }
}
void di(int x){
    ll tw=0;
    for(int i=1;i<=len1;i++) tmp[i]=0;
    for(int i=len1;i>=1;i--){
        tw=tw*10+tms[i];
        tmp[i]=tw/x;
        tw%=x;
    }
    len3=len1;
    while(len3>=2&&tmp[len3]==0) len3--;
}
void add(){
    for(int i=1;i<=max(len2,len3);i++){
        ans[i]+=tmp[i];
        ans[i+1]+=ans[i]/10;
        ans[i]%=10;
    }
    len2=max(len2,len3);
    if(ans[len2+1]) len2=len2+1;
    for(int i=1;i<=len3;i++){
        tmp[i]=0;
    }
}
void mx(){
    if(len3<len2) return;
    if(len3==len2){
        for(int i=len2;i>=1;i--){
            if(ans[i]>tmp[i]) return;
            if(ans[i]<tmp[i]) break;
        }
    }
    len2=len3;
    for(int i=1;i<=len3;i++){
        ans[i]=tmp[i];
    }
}
int main(){
    freopen("kinggame.in","r",stdin);
    freopen("kinggame.out","w",stdout);
    int n;
    cin>>n;
    long long ga,gb;
    cin>>ga>>gb; 
    for(int i=1;i<=n;i++){
        cin>>a[i].a>>a[i].b;
    }
    sort(a+1,a+1+n,cmp);
    
    tms[1]=1;
    len1=1;
    ch(ga);
    for(int i=1;i<=n;i++){
        di(a[i].b);
//        for(int j=len3;j>=1;j--){
//            cout<<tmp[j];
//        }
//        cout<<endl;
        mx();
        ch(a[i].a);
    }
    for(int i=len2;i>=1;i--){
        cout<<ans[i];
    }
    
//    long long ans=0;
//    for(int i=1;i<=n;i++){
//        ans=max(ans,ga/a[i].b);
//        ga*=a[i].a;
//    }
//    cout<<ans;
    return 0;
}