제출 #418107

#제출 시각아이디문제언어결과실행 시간메모리
418107amunduzbaev경찰관과 강도 (BOI14_coprobber)C++14
0 / 100
0 ms328 KiB
#include "coprobber.h" #include "bits/stdc++.h" #ifndef EVAL #include "grader.cpp" #endif using namespace std; const int MAXN = 500; int n, m, x, y, tin[MAXN], tout[MAXN], t; int a[MAXN][MAXN], par[MAXN], cur; void dfs(int u, int p = -1){ par[u] = p, tin[u] = t++; for(int i=0;i<n;i++){ if(a[u][i] && i != p) dfs(i, u); } tout[u] = t - 1; } int start(int N, bool A[MAX_N][MAX_N]){ //~ n = N; //~ for(int i=1;i<N;i++){ //~ int cnt = 0; //~ for(int j=0;j<N;j++) cnt += A[i][j]; //~ if(cnt == 2) { m = i+1; break; } //~ } for(int i=0;i<n;i++){ for(int j=0;j<n;j++) a[i][j] = A[i][j]; } return 0; } int nextMove(int r){ if(~par[cur]) { if(tin[cur] <= tin[r] && tout[r] <= tout[cur]){ for(int i=0;i<n;i++){ if(a[cur][i] && par[cur] != i){ if(tin[i] <= tin[r] && tout[r] <= tout[i]){ cur = i; return i; } } } } else cur = par[cur]; return par[cur]; } else { for(int i=0;i<n;i++){ if(a[cur][i] && par[cur] != i){ if(tin[i] <= tin[r] && tout[r] <= tout[i]){ cur = i; return i; } } } } //~ int tx = r / m, ty = r % m; //~ int xd = abs(tx - x), yd = abs(ty - y); //~ if(xd > yd){ //~ if(tx > x) x++; //~ else x--; //~ } if(xd < yd){ //~ if(ty > y) y++; //~ else y--; //~ } return x * m + y; } /* 9 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 0 1 0 */

컴파일 시 표준 에러 (stderr) 메시지

coprobber.cpp: In function 'int nextMove(int)':
coprobber.cpp:67:1: warning: control reaches end of non-void function [-Wreturn-type]
   67 | }
      | ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...