# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
125753 | 2019-07-06T10:08:13 Z | AngusRitossa | Space Pirate (JOI14_space_pirate) | C++14 | 1684 ms | 91512 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) { while (!canreach[i][j]) { canreach[i][j] = dis++; from[i][fromsz[i]++] = j; j = a[j]; } } 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; break; } } assert(loc != -1); int sz = fromsz[i]-loc; ll dis2 = k-loc; int dis = dis2%sz + n*sz; for (int j = 0; j <= n; j++) { ans[from[i][(dis-j)%sz+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 | 3 ms | 1656 KB | Output is correct |
5 | Correct | 3 ms | 1656 KB | Output is correct |
6 | Correct | 3 ms | 1656 KB | Output is correct |
7 | Correct | 3 ms | 1656 KB | Output is correct |
8 | Correct | 3 ms | 1528 KB | Output is correct |
9 | Correct | 3 ms | 1528 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 | 1148 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 | 3 ms | 1656 KB | Output is correct |
5 | Correct | 3 ms | 1656 KB | Output is correct |
6 | Correct | 3 ms | 1656 KB | Output is correct |
7 | Correct | 3 ms | 1656 KB | Output is correct |
8 | Correct | 3 ms | 1528 KB | Output is correct |
9 | Correct | 3 ms | 1528 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 | 1148 KB | Output is correct |
13 | Correct | 3 ms | 1656 KB | Output is correct |
14 | Correct | 3 ms | 1656 KB | Output is correct |
15 | Correct | 158 ms | 60760 KB | Output is correct |
16 | Correct | 129 ms | 55284 KB | Output is correct |
17 | Correct | 177 ms | 61048 KB | Output is correct |
18 | Correct | 1674 ms | 85372 KB | Output is correct |
19 | Correct | 830 ms | 85112 KB | Output is correct |
20 | Correct | 942 ms | 79356 KB | Output is correct |
21 | Correct | 1259 ms | 91512 KB | Output is correct |
22 | Correct | 545 ms | 80976 KB | Output is correct |
23 | Correct | 1204 ms | 90488 KB | Output is correct |
24 | Correct | 509 ms | 81380 KB | Output is correct |
25 | Correct | 128 ms | 54776 KB | Output is correct |
26 | Correct | 1684 ms | 71332 KB | Output is correct |
27 | Correct | 489 ms | 74360 KB | Output is correct |
28 | Correct | 670 ms | 75048 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Execution timed out | 3 ms | 256 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 | 3 ms | 1656 KB | Output is correct |
5 | Correct | 3 ms | 1656 KB | Output is correct |
6 | Correct | 3 ms | 1656 KB | Output is correct |
7 | Correct | 3 ms | 1656 KB | Output is correct |
8 | Correct | 3 ms | 1528 KB | Output is correct |
9 | Correct | 3 ms | 1528 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 | 1148 KB | Output is correct |
13 | Correct | 3 ms | 1656 KB | Output is correct |
14 | Correct | 3 ms | 1656 KB | Output is correct |
15 | Correct | 158 ms | 60760 KB | Output is correct |
16 | Correct | 129 ms | 55284 KB | Output is correct |
17 | Correct | 177 ms | 61048 KB | Output is correct |
18 | Correct | 1674 ms | 85372 KB | Output is correct |
19 | Correct | 830 ms | 85112 KB | Output is correct |
20 | Correct | 942 ms | 79356 KB | Output is correct |
21 | Correct | 1259 ms | 91512 KB | Output is correct |
22 | Correct | 545 ms | 80976 KB | Output is correct |
23 | Correct | 1204 ms | 90488 KB | Output is correct |
24 | Correct | 509 ms | 81380 KB | Output is correct |
25 | Correct | 128 ms | 54776 KB | Output is correct |
26 | Correct | 1684 ms | 71332 KB | Output is correct |
27 | Correct | 489 ms | 74360 KB | Output is correct |
28 | Correct | 670 ms | 75048 KB | Output is correct |
29 | Execution timed out | 3 ms | 256 KB | Time limit exceeded (wall clock) |
30 | Halted | 0 ms | 0 KB | - |