国王游戏WA0

P1080 [NOIP 2012 提高组] 国王游戏

#include<bits/stdc++.h>
using namespace std;
string a1,b1;
int n;
string sum[1001];
string aa;
vector<unsigned long long>sum1(1005),ans1(1005);
struct node{
    int z,y;
}a[1001];
bool cmp(node a,node b){
    return a.z<b.z;
}
void cheng(string aa,unsigned long long b){
	sum1.clear();
    int c[1001]{0};
    int n=aa.length();
    for(int i=0;i<n;i++) c[i]=aa[n-i-1]-'0';
    for(int i=0;i<n;i++){
        sum1[i]+=(c[i]*b);
        sum1[i+1]+=sum1[i]/10;
        sum1[i]%=10;
    }
}
void chu(string aaa,unsigned long long bb){
    sum1.clear();
    unsigned long long x=0;
    for(int i=0;i<n;i++){
        x=x*10+(aaa[i]-'0');
        sum1[i]=x/bb;
        x%=bb;
    }
}
bool ma(vector<unsigned long long>a,vector<unsigned long long>b){
    if(a.size()!=b.size()) return a.size()>b.size();
    for(int i=a.size()+1;i>=0;i--) if(a[i]!=b[i]) return a[i]>b[i]; 
}
int main(){
    cin>>n>>a1>>b1;
    for(int i=1;i<=n;i++) cin>>a[i].z>>a[i].y;
    sort(a+1,a+n+1,cmp);
    sum[0]=a1;
    for(int i=1;i<=n;i++){
        cheng(sum[i-1],a[i].z);
        chu(sum[i-1],a[i].y);
        if(ma(sum1,ans1)) for(int i=0;i<sum1.size()+2;i++) ans1[i]=sum1[i];
    }
    for(int i=ans1.size()-1;i>=0;i--) cout<<ans1[i];
}

qwqqwq