Submission #841845

#TimeUsernameProblemLanguageResultExecution timeMemory
841845manizareCop and Robber (BOI14_coprobber)C++14
16 / 100
146 ms262144 KiB
#include<bits/stdc++.h> #include "coprobber.h" using namespace std; #define pb push_back #define ll long long #define ff first #define ss second #define all(s) s.begin(),s.end() int cnt = 0 , dis[500] , par[500] , st[500] , en[500] , cur = 0 ; vector <int> G[500] ; void dfs(int v , int p = -1){ st[v] = cnt ; cnt++; for(int i =0 ; i < (int)G[v].size() ; i++){ int u = G[v][i] ; if(u== p)continue ; dis[u] = dis[v] + 1; dfs(u , v) ; } en[v] = cnt ; cnt ++ ; } int start(int n,bool a[500][500]){ for(int i = 0 ; i < n ; i++){ for(int j =0 ; j < n; j++){ if(a[i][j])G[i].pb(j) ; } } dfs(0) ; return 0; } int ch(int v , int u){ if(st[u] >= st[v] && en[v] >= en[u]){ return 1; } return 0 ; } int nextMove(int R){ if(dis[R]-1 == dis[cur])return cur ; for(int i =0 ; i < (int)G[cur].size() ; i++){ int u = G[cur][i] ; if(ch(u, R) && ch(cur , u)){ cur = u; break ; } } return cur ; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...