比赛 五一大礼包 评测结果 AAAAAAAAAA
题目名称 国王游戏 最终得分 100
用户昵称 汐汐很希希 运行时间 0.554 s
代码语言 C++ 内存使用 5.22 MiB
提交时间 2026-05-04 09:56:13
显示代码纯文本
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=1e4+10;
int n;
struct Node{
    ll a,b,p;
}m[N];
bool cmp(Node &x,Node &y)
{
    return x.p<y.p;
}
struct gjd{
	int s[100005],len;
	void init(){
		memset(s,0,sizeof(s));
		len=-1;
	}
	void print(){
		for(int i=len;i>=0;i--) cout<<s[i];
		cout<<endl;
	}
	gjd operator = (int b){
		init();
		if(b==0) len=0;
		else{
            while(b){
			    s[++len]=b%10;
			    b/=10;
			}
		}
		return *this;
	}
	gjd operator = (const gjd & b){
		init();
		len=b.len;
		for(int i=0;i<=len;i++) s[i]=b.s[i];
		return *this;
	}
	bool operator > (const gjd & b) const{
		if(len<b.len) return false;
		if(len>b.len) return true;
		for(int i=len;i>=0;i--){
			if(s[i]>b.s[i]) return true;
			if(s[i]<b.s[i]) return false;
		}
		return false; 
	}
	gjd operator * (const int & b) const{
		gjd t;
        t.init();
		for(int i=0;i<=len;i++) t.s[i]+=s[i]*b;
		for(int i=0;i<=(len+50);i++){
			t.s[i+1]+=(t.s[i]/10);
			t.s[i]%=10;
		}
		t.len=len+50;
		while(t.len&&t.s[t.len]==0) t.len--;
		return t;
	}
	gjd operator / (const int & b) const{
		gjd t;
        t.init();
		int v=0;
		for(int i=len;i>=0;i--){
			v=v*10+s[i];
			if(v>=b){
				t.s[i]=v/b;
				v%=b;
			}
		}
		t.len=len;
		while(t.len&&t.s[t.len]==0) t.len--;
		return t;
	}
}sum,qwq,ans;
int main()
{
    freopen("kinggame.in","r",stdin);
    freopen("kinggame.out","w",stdout);
    
    cin>>n;
    for(int i=0;i<=n;i++){
        cin>>m[i].a>>m[i].b;
        m[i].p=m[i].a*m[i].b;
    }
    sort(m+1,m+n+1,cmp);
    sum=1,ans=0;
    for(int i=1;i<=n;i++)
    {
        sum=sum*m[i-1].a;
        qwq=sum/m[i].b;
        if(qwq>ans) ans=qwq;
    }
    ans.print();
    return 0;
}