#includeiostreamusing namespace std;int main int cdkjmniu; cincdk; int acbc; fori=0;ic;i++ cinaibi; m=a0; n=m; fori=1;ic;i++ m=minmai; n=maxnai; ifc=100d=100000 fori=1;i=n-k;i++ fo
#include
int main() { int c, d, k; cin >> c >> d >> k; int a[c], b[c]; for (int i = 0; i < c; i++) { cin >> a[i] >> b[i]; } int n = a[0]; for (int i = 1; i < c; i++) { n = max(n, a[i]); } if (c <= 100 || d <= 100000) { for (int i = 1; i <= n - k; i++) { for (int j = 0; j < c; j++) { if (a[j] == n - i + 1) { d -= b[j]; a[j]--; } } if (d < 0) { cout << n - i + 1; break; } } if (d > 0) { cout << k << endl; } } else { int j = 0; while (d > 1000) { if (a[j] > 4500) { d -= 4500 * b[j]; a[j] -= 5000; } else if (a[j] > 1000) { d -= 900 * b[j]; a[j] -= 900; } else if (a[j] > 100) { d -= 90 * b[j]; a[j] -= 90; } else if (a[j] > 10) { d -= 8 * b[j]; a[j] -= 8; } j = (j + 1) % c; } for (int i = 1; i <= n - k; i++) { for (int j = 0; j < c; j++) { if (a[j] == n - i + 1) { d -= b[j]; a[j]--; } } if (d < 0) { cout << n - i + 1; break; } } if (d > 0) { cout << k << endl; } } return 0; }
原文地址: https://www.cveoy.top/t/topic/i8RJ 著作权归作者所有。请勿转载和采集!