提交时间:2024-08-20 21:03:05

运行 ID: 171974

#include <bits/stdc++.h> using namespace std; int n,slen=1,s[1000000]={1},ans[1000000]; struct people{ int a,b; }p[1005]; bool cmp(people p1, people p2){ return p1.a*p1.b<p2.a*p2.b; } void mul(int n){ int tmp=0; for(int i=0;i<slen;i++){ s[i]*=n; } for(int i=0;i<slen;i++){ tmp=tmp+s[i]; s[i]=tmp%10; tmp=tmp/10; } while(tmp!=0){ s[slen]=tmp%10; slen++; tmp=tmp/10; } return; } void div(int n){ int tmp=0; for(int i=slen-1;i>=0;i--){ tmp=tmp*10+s[i]; ans[i]=tmp/n; tmp=tmp%n; } return; } int main(){ cin>>n; for(int i=0;i<=n;i++){ cin>>p[i].a>>p[i].b; } sort(p+1,p+n+1,cmp); for(int i=0;i<n;i++){ mul(p[i].a); } div(p[n].b); int tmp=slen; if(slen==1){ if(s[slen-1]==1){ cout<<0; return; } } while(ans[tmp]==0){ tmp--; if(tmp==-1){ cout<<1; } } for(int i=tmp;i>=0;i--) { cout<<ans[i]; } return 0; }