Submission #640202

# Submission time Handle Problem Language Result Execution time Memory
640202 2022-09-14T00:30:18 Z iee Političari (COCI20_politicari) C++17
70 / 70
47 ms 6436 KB
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 1005;
int n, k, a[N][N], vis[N][N];
vector<pair<int, int>> v;
void Ins(int x, int y) {
  vis[x][y] = 1;
  v.emplace_back(x, y);
}
signed main() {
  cin >> n >> k;
  for (int i = 1; i <= n; ++i)
    for (int j = 1; j <= n; ++j)
      cin >> a[i][j];
  Ins(0, 1), Ins(1, 2);
  pair<int, int> las;
  while (true) {
    int x = v.size() - 1, fi = v[x].first, se = v[x].second;
    if (vis[se][a[se][fi]]) {
      las = {se, a[se][fi]};
      break;
    }
    Ins(se, a[se][fi]);
  }
  reverse(v.begin(), v.end());
  while (k > 1 && !v.empty() && v.back() != las)
    v.pop_back(), k -= 1;
  reverse(v.begin(), v.end());
  if (!k) {
    cout << v[0].second;
    return 0;
  }
  int pos = k % v.size() - 1;
  if (pos < 0) pos += (int) v.size();
  cout << v[pos].second;
  return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 340 KB Output is correct
2 Correct 9 ms 2644 KB Output is correct
3 Correct 36 ms 4564 KB Output is correct
4 Correct 38 ms 5336 KB Output is correct
5 Correct 47 ms 6080 KB Output is correct
6 Correct 46 ms 5824 KB Output is correct
7 Correct 0 ms 440 KB Output is correct
8 Correct 4 ms 1364 KB Output is correct
9 Correct 12 ms 3028 KB Output is correct
10 Correct 37 ms 5388 KB Output is correct
11 Correct 47 ms 6436 KB Output is correct
12 Correct 47 ms 6344 KB Output is correct
13 Correct 1 ms 596 KB Output is correct
14 Correct 4 ms 1364 KB Output is correct