# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1001650 | 2024-06-19T06:43:13 Z | Ausp3x | Horses (IOI15_horses) | C++17 | 1500 ms | 12944 KB |
// 人外有人,天外有天 // author: Ausp3x #include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include "horses.h" typedef long long lng; typedef unsigned int uint; typedef unsigned long long ulng; using namespace std; using namespace __gnu_pbds; int const INF32 = 0x3f3f3f3f; lng const INF64 = 0x3f3f3f3f3f3f3f3f; int const MOD = 1000000007; int N; vector<int> X, Y; lng modPow(lng x, lng y) { lng res = 1; while (y > 0) { if (y & 1) { res *= x; res %= MOD; } y >>= 1; x *= x; x %= MOD; } return (res + MOD) % MOD; } lng allHorses = 1; int getMaxValue(int opt) { if (opt == 1) { lng horses = 1; for (int i = 0; i < N; i++) { (horses *= X[i]) %= MOD; bool chk = true; lng cur = 1; for (int j = i + 1; j < N; j++) { if (cur == INF32 || cur * X[j] > INF32) { chk = false; break; } cur *= X[j]; if (cur * Y[j] > Y[i]) { chk = false; break; } } if (chk) { return horses * Y[i] % MOD; } } } else if (opt == 2) { lng horses = 1; for (int i = 0; i < 32; i++) { (horses *= X[i]) %= MOD; bool chk = true; lng cur = 1; for (int j = i + 1; j < N; j++) { if (cur == INF32 || cur * X[j] > INF32) { chk = false; break; } cur *= X[j]; if (cur * Y[j] > Y[i]) { chk = false; break; } } if (chk) { return horses * Y[i] % MOD; } } return allHorses * Y[N - 1] % MOD; } return -1; } bool allXG2 = true; int init(int n, int x[], int y[]) { N = n; X.resize(n); Y.resize(n); for (int i = 0; i < n; i++) { if (x[i] < 2) allXG2 = false; (allHorses *= x[i]) %= MOD; X[i] = x[i]; Y[i] = y[i]; } return (allXG2 ? getMaxValue(2) : getMaxValue(1)); } bool allValG2 = true; int updateX(int pos, int val) { if (val < 2) allValG2 = false; (allHorses *= pow(X[pos], MOD - 2)) %= MOD; X[pos] = val; (allHorses *= X[pos]) %= MOD; return (allXG2 && allValG2 ? getMaxValue(2) : getMaxValue(1)); } int updateY(int pos, int val) { if (val < 2) allValG2 = false; Y[pos] = val; return (allXG2 && allValG2 ? getMaxValue(2) : getMaxValue(1)); } // int main() { // ios_base::sync_with_stdio(false); // cin.tie(NULL); // int x[3] = {2, 1, 3}; // int y[3] = {3, 4, 1}; // cout << init(3, x, y) << endl; // cout << updateY(1, 2) << endl; // return 0; // }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 348 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
3 | Correct | 0 ms | 348 KB | Output is correct |
4 | Correct | 0 ms | 348 KB | Output is correct |
5 | Correct | 0 ms | 348 KB | Output is correct |
6 | Correct | 0 ms | 348 KB | Output is correct |
7 | Correct | 0 ms | 348 KB | Output is correct |
8 | Correct | 0 ms | 348 KB | Output is correct |
9 | Correct | 0 ms | 348 KB | Output is correct |
10 | Correct | 0 ms | 348 KB | Output is correct |
11 | Correct | 0 ms | 348 KB | Output is correct |
12 | Correct | 0 ms | 348 KB | Output is correct |
13 | Correct | 0 ms | 344 KB | Output is correct |
14 | Correct | 0 ms | 344 KB | Output is correct |
15 | Correct | 0 ms | 348 KB | Output is correct |
16 | Correct | 0 ms | 348 KB | Output is correct |
17 | Correct | 0 ms | 348 KB | Output is correct |
18 | Correct | 1 ms | 344 KB | Output is correct |
19 | Correct | 0 ms | 600 KB | Output is correct |
20 | Correct | 0 ms | 344 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 348 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
3 | Correct | 0 ms | 348 KB | Output is correct |
4 | Correct | 0 ms | 604 KB | Output is correct |
5 | Correct | 0 ms | 348 KB | Output is correct |
6 | Correct | 0 ms | 348 KB | Output is correct |
7 | Correct | 0 ms | 348 KB | Output is correct |
8 | Correct | 1 ms | 348 KB | Output is correct |
9 | Correct | 0 ms | 348 KB | Output is correct |
10 | Correct | 0 ms | 344 KB | Output is correct |
11 | Correct | 0 ms | 348 KB | Output is correct |
12 | Correct | 0 ms | 348 KB | Output is correct |
13 | Correct | 0 ms | 348 KB | Output is correct |
14 | Correct | 0 ms | 348 KB | Output is correct |
15 | Correct | 0 ms | 348 KB | Output is correct |
16 | Correct | 0 ms | 348 KB | Output is correct |
17 | Correct | 0 ms | 348 KB | Output is correct |
18 | Correct | 0 ms | 348 KB | Output is correct |
19 | Correct | 0 ms | 348 KB | Output is correct |
20 | Correct | 0 ms | 348 KB | Output is correct |
21 | Correct | 0 ms | 428 KB | Output is correct |
22 | Correct | 0 ms | 348 KB | Output is correct |
23 | Correct | 5 ms | 348 KB | Output is correct |
24 | Correct | 5 ms | 348 KB | Output is correct |
25 | Correct | 5 ms | 348 KB | Output is correct |
26 | Correct | 5 ms | 348 KB | Output is correct |
27 | Correct | 12 ms | 464 KB | Output is correct |
28 | Correct | 5 ms | 348 KB | Output is correct |
29 | Correct | 158 ms | 348 KB | Output is correct |
30 | Correct | 63 ms | 348 KB | Output is correct |
31 | Correct | 111 ms | 344 KB | Output is correct |
32 | Correct | 295 ms | 344 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 38 ms | 12944 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 348 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
3 | Correct | 0 ms | 348 KB | Output is correct |
4 | Correct | 0 ms | 348 KB | Output is correct |
5 | Correct | 0 ms | 348 KB | Output is correct |
6 | Correct | 0 ms | 348 KB | Output is correct |
7 | Correct | 0 ms | 348 KB | Output is correct |
8 | Correct | 0 ms | 348 KB | Output is correct |
9 | Correct | 0 ms | 348 KB | Output is correct |
10 | Correct | 0 ms | 348 KB | Output is correct |
11 | Correct | 0 ms | 348 KB | Output is correct |
12 | Correct | 0 ms | 436 KB | Output is correct |
13 | Correct | 0 ms | 348 KB | Output is correct |
14 | Correct | 0 ms | 344 KB | Output is correct |
15 | Correct | 0 ms | 348 KB | Output is correct |
16 | Correct | 1 ms | 348 KB | Output is correct |
17 | Correct | 0 ms | 348 KB | Output is correct |
18 | Correct | 0 ms | 348 KB | Output is correct |
19 | Correct | 0 ms | 348 KB | Output is correct |
20 | Correct | 0 ms | 348 KB | Output is correct |
21 | Correct | 0 ms | 436 KB | Output is correct |
22 | Correct | 0 ms | 436 KB | Output is correct |
23 | Correct | 9 ms | 348 KB | Output is correct |
24 | Correct | 6 ms | 448 KB | Output is correct |
25 | Correct | 5 ms | 488 KB | Output is correct |
26 | Correct | 5 ms | 348 KB | Output is correct |
27 | Correct | 11 ms | 468 KB | Output is correct |
28 | Correct | 5 ms | 344 KB | Output is correct |
29 | Correct | 158 ms | 348 KB | Output is correct |
30 | Correct | 63 ms | 456 KB | Output is correct |
31 | Correct | 112 ms | 456 KB | Output is correct |
32 | Correct | 303 ms | 348 KB | Output is correct |
33 | Execution timed out | 1592 ms | 12140 KB | Time limit exceeded |
34 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 440 KB | Output is correct |
2 | Correct | 1 ms | 348 KB | Output is correct |
3 | Correct | 0 ms | 348 KB | Output is correct |
4 | Correct | 0 ms | 348 KB | Output is correct |
5 | Correct | 0 ms | 348 KB | Output is correct |
6 | Correct | 0 ms | 348 KB | Output is correct |
7 | Correct | 0 ms | 348 KB | Output is correct |
8 | Correct | 0 ms | 348 KB | Output is correct |
9 | Correct | 0 ms | 348 KB | Output is correct |
10 | Correct | 0 ms | 348 KB | Output is correct |
11 | Correct | 0 ms | 348 KB | Output is correct |
12 | Correct | 0 ms | 348 KB | Output is correct |
13 | Correct | 0 ms | 348 KB | Output is correct |
14 | Correct | 0 ms | 348 KB | Output is correct |
15 | Correct | 0 ms | 344 KB | Output is correct |
16 | Correct | 0 ms | 348 KB | Output is correct |
17 | Correct | 0 ms | 360 KB | Output is correct |
18 | Correct | 0 ms | 348 KB | Output is correct |
19 | Correct | 0 ms | 432 KB | Output is correct |
20 | Correct | 0 ms | 352 KB | Output is correct |
21 | Correct | 0 ms | 360 KB | Output is correct |
22 | Correct | 0 ms | 348 KB | Output is correct |
23 | Correct | 6 ms | 360 KB | Output is correct |
24 | Correct | 5 ms | 348 KB | Output is correct |
25 | Correct | 5 ms | 348 KB | Output is correct |
26 | Correct | 5 ms | 636 KB | Output is correct |
27 | Correct | 16 ms | 348 KB | Output is correct |
28 | Correct | 6 ms | 468 KB | Output is correct |
29 | Correct | 155 ms | 344 KB | Output is correct |
30 | Correct | 64 ms | 348 KB | Output is correct |
31 | Correct | 112 ms | 348 KB | Output is correct |
32 | Correct | 313 ms | 444 KB | Output is correct |
33 | Incorrect | 37 ms | 12892 KB | Output isn't correct |
34 | Halted | 0 ms | 0 KB | - |