# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
862006 | 2023-10-17T11:12:25 Z | lozergam | Regions (IOI09_regions) | C++17 | 81 ms | 131072 KB |
#include <bits/stdc++.h> #include <numeric> using namespace std; #define ll long long #define pb push_back ll min(ll a , ll b) { if(a < b)return a; return b; } ll max(ll a , ll b) { if(a > b)return a; return b; } const ll maxn = 200052, max_SQRT = 125; // la la lay lay ll N, R, Q, H[maxn], rgnOrd[maxn >> 3], revOrd[maxn >> 3]; vector<ll> adj[maxn], rgnLst[maxn >> 3], rgnLst2[maxn >> 3]; ll timer, tin[maxn], tout[maxn]; ll tdall[max_SQRT][max_SQRT], td[maxn][max_SQRT]; void dfs(ll f) { tin[f] = timer++; for (ll i = 0; i < min(R, max_SQRT) && revOrd[H[f]] < max_SQRT; i++) { tdall[revOrd[H[f]]][i] += td[f][i]; } for (ll nf : adj[f]) { for (ll i = 0; i < min(R, max_SQRT); i++) { td[nf][i] = td[f][i] + (rgnOrd[i] == H[f]); } dfs(nf); } tout[f] = timer - 1; } signed main() { scanf("%lli%lli%lli%lli", &N, &R, &Q, &H[0]); rgnLst[--H[0]].push_back(0); for (ll i = 1, p; i < N; i++) { scanf("%d%d", &p, &H[i]); adj[--p].push_back(i); rgnLst[--H[i]].push_back(i); } iota(rgnOrd, rgnOrd + R, 0); sort(rgnOrd, rgnOrd + R, [&](const ll &a, const ll &b) { return rgnLst[a].size() > rgnLst[b].size(); }); for (ll i = 0; i < R; i++) { revOrd[rgnOrd[i]] = i; } dfs(0); for (ll i = 0; i < R; i++) { for (ll j : rgnLst[i]) { rgnLst2[i].push_back(tin[j]); } sort(rgnLst2[i].begin(), rgnLst2[i].end()); } for (ll a, b, ans; Q--;) { scanf("%lli%lli", &a, &b); a--, b--; ans = 0; if (revOrd[a] < max_SQRT && revOrd[b] < max_SQRT) { ans = tdall[revOrd[b]][revOrd[a]]; } else if (revOrd[a] < max_SQRT) { for (ll i : rgnLst[b]) { ans += td[i][revOrd[a]]; } } else { for (ll i : rgnLst[a]) { ans += upper_bound(rgnLst2[b].begin(), rgnLst2[b].end(), tout[i]) - lower_bound(rgnLst2[b].begin(), rgnLst2[b].end(), tin[i]); } } printf("%lli\n", ans); } } /* ZZZZZZZ A M M IIIIIII N N TTTTTTTTTT RRRRRR EEEEEEE EEEEEEE Z A A M M M M I NN N TT R R E E Z A A M M M M I N N N TT R R E E Z AAAAAAA M M M I N N N TT RRRRRR EEEEEEE EEEEEEE Z A A M M I N N N TT RR E E Z A A M M I N NN TT R R E E ZZZZZZZ A A M M IIIIIII N N TT R R EEEEEEE EEEEEEE */
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Execution timed out | 2 ms | 10584 KB | Time limit exceeded (wall clock) |
2 | Execution timed out | 2 ms | 10584 KB | Time limit exceeded (wall clock) |
3 | Execution timed out | 2 ms | 10584 KB | Time limit exceeded (wall clock) |
4 | Execution timed out | 2 ms | 10840 KB | Time limit exceeded (wall clock) |
5 | Execution timed out | 3 ms | 12888 KB | Time limit exceeded (wall clock) |
6 | Execution timed out | 2 ms | 12888 KB | Time limit exceeded (wall clock) |
7 | Execution timed out | 3 ms | 12888 KB | Time limit exceeded (wall clock) |
8 | Execution timed out | 3 ms | 12888 KB | Time limit exceeded (wall clock) |
9 | Execution timed out | 4 ms | 17496 KB | Time limit exceeded (wall clock) |
10 | Execution timed out | 7 ms | 21592 KB | Time limit exceeded (wall clock) |
11 | Execution timed out | 10 ms | 27992 KB | Time limit exceeded (wall clock) |
12 | Execution timed out | 13 ms | 32768 KB | Time limit exceeded (wall clock) |
13 | Execution timed out | 17 ms | 36552 KB | Time limit exceeded (wall clock) |
14 | Execution timed out | 20 ms | 43540 KB | Time limit exceeded (wall clock) |
15 | Execution timed out | 22 ms | 54704 KB | Time limit exceeded (wall clock) |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Execution timed out | 47 ms | 89908 KB | Time limit exceeded (wall clock) |
2 | Execution timed out | 59 ms | 94840 KB | Time limit exceeded (wall clock) |
3 | Execution timed out | 57 ms | 106260 KB | Time limit exceeded (wall clock) |
4 | Execution timed out | 21 ms | 43244 KB | Time limit exceeded (wall clock) |
5 | Execution timed out | 21 ms | 51544 KB | Time limit exceeded (wall clock) |
6 | Execution timed out | 36 ms | 65140 KB | Time limit exceeded (wall clock) |
7 | Execution timed out | 49 ms | 84768 KB | Time limit exceeded (wall clock) |
8 | Execution timed out | 57 ms | 119516 KB | Time limit exceeded (wall clock) |
9 | Runtime error | 73 ms | 131072 KB | Execution killed with signal 9 |
10 | Runtime error | 76 ms | 131072 KB | Execution killed with signal 9 |
11 | Runtime error | 71 ms | 131072 KB | Execution killed with signal 9 |
12 | Runtime error | 73 ms | 131072 KB | Execution killed with signal 9 |
13 | Runtime error | 65 ms | 131072 KB | Execution killed with signal 9 |
14 | Runtime error | 81 ms | 131072 KB | Execution killed with signal 9 |
15 | Runtime error | 80 ms | 131072 KB | Execution killed with signal 9 |
16 | Runtime error | 79 ms | 131072 KB | Execution killed with signal 9 |
17 | Runtime error | 78 ms | 131072 KB | Execution killed with signal 9 |