#include<iostream>
#include<algorithm>
using namespace std;
int S[10001]={1},p=0,Maxn[10001],mp=0;
struct node{
int l,r;
}A[10001];
bool cmp(node x,node y){
// if(x.l*x.r==y.l*y.r)return x.r<y.r;
return (x.l*x.r)<(y.l*y.r);
}
void gaojincu(int x);
void gaojince(int x);
int main(){
freopen("word.txt","r",stdin);
int n;
cin >> n;
for(int i=0;i<=n;i++)cin >> A[i].l >> A[i].r;
gaojince(A[0].l);
sort(A+1,A+n+1,cmp);
for(int i=1;i<=n;i++){
gaojincu(A[i].r);
gaojince(A[i].l);
}
// gaojincu(A[n].r);
//调试代码
// for(int i=0;i<=n;i++){
// cout << A[i].l << " " << A[i].r << " endl ";
// }
for(int i=mp;i>=0;i--)cout << Maxn[i];
// cout << endl << mp;
// cout << endl;
// system("pause");
return 0;
}
void gaojincu(int x){
int J[10001]={};//除法结果
int jp=-1,f=0,sum=0;
for(int i=p;i>=0;i--){
sum*=10;
sum+=S[i];
if((int)(sum/x)>0)f=1;
if(f){
jp++;
if(sum){
J[jp]=(int)(sum/x);
sum%=x;
}
else J[jp]=0;
}
}
int J2[10001]={};
if(!f)jp=0;
for(int i=jp;i>=0;i--)J2[jp-i]=J[i];
int bj=-1;
if(mp<jp){
bj=1;
}
else if(mp==jp){
for(int i=0;i<=jp;i++){
if(Maxn[i]>J2[i]){
bj=2;
break;
}
else if(Maxn[i]<J2[i]){
bj=1;
break;
}
}
}
if(bj==1){
mp=jp;
for(int i=0;i<=jp;i++)Maxn[i]=J2[i];
}
//调试代码
// for(int i=jp;i>=0;i--)cout << J2[i];
// cout << endl;
}
void gaojince(int x){
int Temp[101]={};
int Sum[10001]={};
int tp=-1;
while(x){
tp++;
Temp[tp]=x%10;
x/=10;
}
int tempp,jw=0;
for(int i=0;i<=tp;i++){
for(int d=0;d<=p;d++){
Sum[i+d]+=S[d]*Temp[i]+jw;
jw=Sum[i+d]/10;
Sum[i+d]%=10;
tempp=i+d;
}
}
while(jw){
tempp++;
Sum[tempp]+=jw;
jw=Sum[tempp]/10;
Sum[tempp]%=10;
}
p=tempp;
for(int i=0;i<=p;i++)S[i]=Sum[i];
//调试代码
// for(int i=p;i>=0;i--)cout << S[i];
// cout << endl;
}
之前测试点7 RE,又交了一次,WA了??评判看心情?
大佬看看帮忙改,谢谢~