求条,玄关
查看原帖
求条,玄关
933096
huhengrui2013楼主2025/7/19 13:13

rt


#include<bits/stdc++.h>
using namespace std;
string chu(string s,int b){
    string ans;
    int i=0;
    int t=s[i]-'0';
    while(t<b&&i+1<s.size()){
        t=t*10+(s[++i]-'0');
    }
    while(i<s.size()){
        ans+=(t/b)+'0';
        t=(t%b)*10+(s[++i]-'0');
    }
    if(ans.empty()) return "0";
    return ans;
}
string cheng(string s,int b){
    if(b==0) return "0";
    string ans;
    int t=0;
    for (int i=s.size()-1;i>=0;--i){
        int p=(s[i]-'0')*b+t;
        ans.push_back(p%10+'0');
        t=p/10;
    }
    while(t){
        ans.push_back(t%10+'0');
        t/=10;
    }
    reverse(ans.begin(),ans.end());
    return ans;
}

bool ck(string a,string b){
    if (a.size()!=b.size()) return a.size()>b.size();
    return a>b;
}
const int N=10010;
struct p{
    int l,r;
}a[N];

int n;
bool cmp(p x,p y){
    return x.l*x.r<y.l*y.r;
}
int main(){
	cin>>n;
    for(int i=1;i<=n+1;i++){
        cin>>a[i].l>>a[i].r;
    }
    sort(a+2,a+2+n,cmp);
    string ans="0",res=to_string(a[1].l);
    for(int i=2;i<=n+1;i++){
        string s=chu(res,a[i].r);
        if(ck(ans,s)) ans=s;
        res=cheng(res,a[i].l);
    }
    cout<<ans;
    return 0;
}
2025/7/19 13:13
加载中...