提交时间:2024-08-20 23:10:50
运行 ID: 173661
#include <bits/stdc++.h> using namespace std; struct people { int a,b; } ps[100005]; int s[1000000] ={1},ans[1000000],slen = 1; bool cmp(people p1,people p2){ return p1.a * p1.b < p2.a * p2.b; } void mul(int n); void div(int n); void print(); int main() { int n; cin >> n; for(int i = 0;i <= n;i++) { cin >> ps[i].a >> ps[i].b; } sort(ps+1,ps+n+1,cmp); for(int i = 0;i < n;i++) { mul(ps[i].a); } div(ps[n].b); print(); return 0; } void mul(int n) { int tem = 0; for(int i = 0;i < slen;i++) { s[i] *= n; } for(int i = 0;i < slen;i++) { tem = tem + s[i]; s[i] = tem % 10; tem /= 10; } while(tem != 0) { s[slen] = tem % 10; slen++; tem /= 10; } return; } void div(int n) { int tem = 0; for(int i = slen - 1;i >= 0;i--) { tem = tem * 10 + s[i]; ans[i] = tem / n; tem %= n; } return; } void print() { int tmp = slen; while(ans[tmp] == 0 ) { tmp--; if(tmp == -1){ cout << 1; return; } } for(int i = tmp;i >= 0;i--) { cout << ans[i]; } }