比赛 五一大礼包 评测结果 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;
}