#include "coprobber.h"
#include <bits/stdc++.h>
using namespace std;
int as[MAX_N][MAX_N],w[MAX_N][MAX_N][2],f[MAX_N][MAX_N];
int qh,qt;
array<int,3> qu[MAX_N*MAX_N*2];
int p=0;
int start(int n, bool a[MAX_N][MAX_N])
{
for(int i = 0;i<n;i++){
for(int j = 0;j<n;j++) {
for(int k = 0;k<n;k++) as[k][i] += a[i][j];
}
}
qh=qt=0;
for(int i = 0;i<n;i++) {
for(int j = 0;j<2;j++) {
w[i][i][j]=1;
qu[qt++]={i,i,j};
}
}
while(qh<qt){
array<int,3> u = qu[qh++];
for(int i = 0;i<n;i++) {
if(u[2]&&(a[i][u[0]]||i==u[0])&&!w[i][u[1]][0]){
w[i][u[1]][0]=1;
qu[qt++]={i,u[1],0};
f[i][u[1]]=u[0];
} else if(!u[2]&&a[i][u[1]]&&!w[u[0]][i][1]&&--as[u[0]][i]<=0){
w[u[0]][i][1]=1;
qu[qt++]={u[0],i,1};
}
}
}
int ok = 1;
for(int i = 0;i<n&&ok;i++){
ok=w[0][i][0];
}
return ok?0:-1;
}
int nextMove(int R)
{
return p=f[p][R];
}
/*
/usr/bin/g++ -DEVAL -std=gnu++11 -O2 -pipe -s -o askask grader.cpp askask2.cpp
/usr/bin/g++ -DEVAL -std=gnu++11 -O2 -pipe -s -o coprobber grader.cpp coprobber.cpp
*/
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |