# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
677290 | 2023-01-02T17:56:54 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(501, vector<int>(501)); vector<int> p(501); 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[501][501]){ 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; }