Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
168654 | C班-范浩宇 | 国王游戏 | C++ | 通过 | 100 | 6 MS | 296 KB | 996 | 2024-08-20 12:50:39 |
#include <bits/stdc++.h> using namespace std; int n, l = 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 < l; i++) s[i] *= n; for (int i = 0; i < l; i++) { tmp = tmp + s[i]; s[i] = tmp % 10; tmp = tmp / 10; } while (tmp != 0) { s[l] = tmp % 10; l++; tmp = tmp / 10; } 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); int tmp1 = 0; for (int i = l - 1; i >= 0; i--) { tmp1 = tmp1 * 10 + s[i]; ans[i] = tmp1 / p[n].b; tmp1 = tmp1 % p[n].b; } int tmp2 = l; if (l == 1) { if (s[l - 1] == 1) cout << 0; } while (ans[tmp2] == 0) { tmp2--; if (tmp2 == -1) cout << 1; } for (int i = tmp2; i >= 0; i--) cout << ans[i]; return 0; }