# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
677284 | 2023-01-02T17:52:02 Z | Truitadepatates | Cop and Robber (BOI14_coprobber) | C++14 | 0 ms | 0 KB |
#include <bits/stdc++.h> using namespace std; //subtask 1 vector<vector<int>> adj(507, vector<int>(507)); vector<int> p(507); int cop = 0; void dfs(int actual, int anterior){ p[actual] = anterior; for (auto it: adj[actual]){ if (it != anterior){ dfs(it, actual); } } } int start(int n, bool a[507][507]){ for (int i = 0; i < n; i++){ for (int j = 0; j < n; j++){ if (a[i][j] == 1){ adj[i].push_back(j); adj[j].push_back(i); } } } dfs(0, -1); return 0; } int nextMove(int r){ if (r == cop) return r; else{ while (cop != p[r]){ r = p[r]; } } cop = r; return r; }