# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
258426 | 2020-08-05T23:01:25 Z | ipaljak | Političari (COCI20_politicari) | C++14 | 35 ms | 3176 KB |
#include <bits/stdc++.h> using namespace std; #define TRACE(x) cerr << #x << " " << x << endl #define FOR(i, a, b) for (int i = (a); i < int(b); ++i) #define REP(i, n) FOR(i, 0, n) #define _ << " " << typedef long long llint; const int MAXN = 505; int n; int mat[MAXN][MAXN], bio[MAXN][MAXN], guest[MAXN * MAXN]; llint k; int main(void) { scanf("%d%lld", &n, &k); for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { scanf("%d", &mat[i][j]); --mat[i][j]; } } int prev = 0, curr = 1; guest[1] = 0; guest[2] = 1; bio[prev][curr] = 2; for (int i = 3; (llint) i <= k; ++i) { int nxt = mat[curr][prev]; prev = curr; curr = nxt; if (bio[prev][curr] == 0) { bio[prev][curr] = i; guest[i] = curr; continue; } int j = bio[prev][curr]; int cycle = i - j; int ret = j + ((k - j) % cycle); printf("%d\n", guest[ret] + 1); return 0; } printf("%d\n", guest[k] + 1); return 0; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 384 KB | Output is correct |
2 | Correct | 7 ms | 1408 KB | Output is correct |
3 | Correct | 23 ms | 2304 KB | Output is correct |
4 | Correct | 28 ms | 2680 KB | Output is correct |
5 | Correct | 35 ms | 2936 KB | Output is correct |
6 | Correct | 33 ms | 2816 KB | Output is correct |
7 | Correct | 0 ms | 384 KB | Output is correct |
8 | Correct | 3 ms | 896 KB | Output is correct |
9 | Correct | 8 ms | 1408 KB | Output is correct |
10 | Correct | 33 ms | 2460 KB | Output is correct |
11 | Correct | 35 ms | 3176 KB | Output is correct |
12 | Correct | 32 ms | 3064 KB | Output is correct |
13 | Correct | 1 ms | 512 KB | Output is correct |
14 | Correct | 3 ms | 896 KB | Output is correct |