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