# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
125748 | 2019-07-06T10:01:27 Z | AngusRitossa | Space Pirate (JOI14_space_pirate) | C++14 | 2000 ms | 91528 KB |
#include <bits/stdc++.h> using namespace std; #ifdef DEBUG #define D(x...) printf(x) #else #define D(x...) #endif typedef long long ll; int n, a[3010], ans[3010]; int canreach[3010][3010], at[3010][3010]; int from[3010][3030], fromsz[3010]; void dfs(int i, int j, int dis = 1) { if (canreach[i][j]) return; canreach[i][j] = dis; from[i][fromsz[i]++] = j; dfs(i, a[j], dis+1); } ll k; int main() { scanf("%d%lld", &n, &k); for (int i = 1; i <= n; i++) scanf("%d", &a[i]); for (int i = 1; i <= n; i++) dfs(i, i); for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { if (canreach[1][i]) { if (i == j) ans[i]++; else if (canreach[j][i]) { ll dis = k-canreach[1][i]+1; dis %= canreach[j][i]; int endpoint = i; if (dis > 0) endpoint = from[j][dis-1]; ans[endpoint]++; } else at[j][canreach[1][i]]++; } else at[1][0]++; } } for (int i = 1; i <= n; i++) { int cyclestart = a[from[i][fromsz[i]-1]]; int loc = -1; for (int j = 0; j < fromsz[i]; j++) { if (from[i][j] == cyclestart) loc = j; } assert(loc != -1); int sz = fromsz[i]-loc; ll dis2 = k-loc; int dis = dis2%sz; for (int j = 0; j <= n; j++) { int d = dis-(ll)j; d += n*sz; d %= sz; ans[from[i][d+loc]] += at[i][j]; } } for (int i = 1; i <= n; i++) printf("%d\n", ans[i]); }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 3 ms | 1656 KB | Output is correct |
2 | Correct | 3 ms | 1144 KB | Output is correct |
3 | Correct | 3 ms | 1528 KB | Output is correct |
4 | Correct | 4 ms | 1656 KB | Output is correct |
5 | Correct | 3 ms | 1656 KB | Output is correct |
6 | Correct | 3 ms | 1528 KB | Output is correct |
7 | Correct | 3 ms | 1656 KB | Output is correct |
8 | Correct | 3 ms | 1656 KB | Output is correct |
9 | Correct | 3 ms | 1656 KB | Output is correct |
10 | Correct | 3 ms | 1656 KB | Output is correct |
11 | Correct | 3 ms | 1528 KB | Output is correct |
12 | Correct | 3 ms | 1272 KB | Output is correct |
13 | Correct | 3 ms | 1656 KB | Output is correct |
14 | Correct | 3 ms | 1656 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 3 ms | 1656 KB | Output is correct |
2 | Correct | 3 ms | 1144 KB | Output is correct |
3 | Correct | 3 ms | 1528 KB | Output is correct |
4 | Correct | 4 ms | 1656 KB | Output is correct |
5 | Correct | 3 ms | 1656 KB | Output is correct |
6 | Correct | 3 ms | 1528 KB | Output is correct |
7 | Correct | 3 ms | 1656 KB | Output is correct |
8 | Correct | 3 ms | 1656 KB | Output is correct |
9 | Correct | 3 ms | 1656 KB | Output is correct |
10 | Correct | 3 ms | 1656 KB | Output is correct |
11 | Correct | 3 ms | 1528 KB | Output is correct |
12 | Correct | 3 ms | 1272 KB | Output is correct |
13 | Correct | 3 ms | 1656 KB | Output is correct |
14 | Correct | 3 ms | 1656 KB | Output is correct |
15 | Correct | 163 ms | 61020 KB | Output is correct |
16 | Correct | 138 ms | 55200 KB | Output is correct |
17 | Correct | 200 ms | 61124 KB | Output is correct |
18 | Correct | 1786 ms | 85624 KB | Output is correct |
19 | Correct | 790 ms | 85160 KB | Output is correct |
20 | Correct | 961 ms | 79224 KB | Output is correct |
21 | Correct | 1246 ms | 91528 KB | Output is correct |
22 | Correct | 561 ms | 81016 KB | Output is correct |
23 | Correct | 1276 ms | 90488 KB | Output is correct |
24 | Correct | 473 ms | 81296 KB | Output is correct |
25 | Correct | 133 ms | 54780 KB | Output is correct |
26 | Execution timed out | 2045 ms | 71284 KB | Time limit exceeded |
27 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Execution timed out | 3 ms | 376 KB | Time limit exceeded (wall clock) |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 3 ms | 1656 KB | Output is correct |
2 | Correct | 3 ms | 1144 KB | Output is correct |
3 | Correct | 3 ms | 1528 KB | Output is correct |
4 | Correct | 4 ms | 1656 KB | Output is correct |
5 | Correct | 3 ms | 1656 KB | Output is correct |
6 | Correct | 3 ms | 1528 KB | Output is correct |
7 | Correct | 3 ms | 1656 KB | Output is correct |
8 | Correct | 3 ms | 1656 KB | Output is correct |
9 | Correct | 3 ms | 1656 KB | Output is correct |
10 | Correct | 3 ms | 1656 KB | Output is correct |
11 | Correct | 3 ms | 1528 KB | Output is correct |
12 | Correct | 3 ms | 1272 KB | Output is correct |
13 | Correct | 3 ms | 1656 KB | Output is correct |
14 | Correct | 3 ms | 1656 KB | Output is correct |
15 | Correct | 163 ms | 61020 KB | Output is correct |
16 | Correct | 138 ms | 55200 KB | Output is correct |
17 | Correct | 200 ms | 61124 KB | Output is correct |
18 | Correct | 1786 ms | 85624 KB | Output is correct |
19 | Correct | 790 ms | 85160 KB | Output is correct |
20 | Correct | 961 ms | 79224 KB | Output is correct |
21 | Correct | 1246 ms | 91528 KB | Output is correct |
22 | Correct | 561 ms | 81016 KB | Output is correct |
23 | Correct | 1276 ms | 90488 KB | Output is correct |
24 | Correct | 473 ms | 81296 KB | Output is correct |
25 | Correct | 133 ms | 54780 KB | Output is correct |
26 | Execution timed out | 2045 ms | 71284 KB | Time limit exceeded |
27 | Halted | 0 ms | 0 KB | - |