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