70pts,求调
查看原帖
70pts,求调
737088
WUYUEZE楼主2024/11/10 12:14
#include<bits/stdc++.h>
using namespace std;
#define int long long
int a,c,s[8010],ma[8010],ss[8010];
string b;
struct node{
  int x,y,z;
};
node n[1010];
bool cmp(node a,node b){
  return a.z<b.z;
}
signed main(){
  cin>>a>>b>>c;
  for(int i=0;i<b.size();i++){
    s[i]=b[i]-'0';
  }
  for(int i=0;i<a;i++){
    cin>>n[i].x>>n[i].y;
    n[i].z=n[i].x*n[i].y;
  }
  sort(n+0,n+a,cmp);
  for(int i=0;i<a;i++){
    int sss=0;
    for(int j=8009;j>=0;j--){
      sss*=10;
      sss+=s[j];
      ss[j]=sss/n[i].y;
      sss%=n[i].y;
    }
    bool ky=0;
    for(int j=8009;j>=0;j--){
      if(ss[j]>ma[j]){
        ky=1;
        break;
      }
      else if(ss[j]<ma[j]){
        break;
      }
    }
    if(ky){
      for(int j=0;j<8010;j++){
        ma[j]=ss[j];
      }
    }
    for(int j=0;j<8010;j++){
      s[j]*=n[i].x;
    }
    for(int j=0;j<100;j++){
      for(int k=0;k<8010;k++){
        if(s[k]>9){
          s[k+1]+=s[k]/10;
          s[k]%=10;
        }
      }
    }
  }
  bool ky=0;
  for(int i=8009;i>=0;i--){
    if(ma[i]){
      ky=1;
    }
    if(ky){
      cout<<ma[i];
    }
  }
  return 0;
}
2024/11/10 12:14
加载中...