This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "coprobber.h"
#include <bits/stdc++.h>
using namespace std;
vector<int> vec[MAX_N];
int dist[MAX_N][MAX_N], pos, vis[MAX_N];
queue<int> q;
int start(int N, bool A[MAX_N][MAX_N])
{
for(int i=0; i<N; i++)
{
for(int j=0; j<N; j++)
{
if(A[i][j]) vec[i].push_back(j);
}
}
for(int i=0; i<N; i++)
{
q.push(i);
for(int j=0; j<N; j++) dist[i][j]=MAX_N*MAX_N;
dist[i][i]=0;
while(!q.empty())
{
int v=q.front();
q.pop();
int ns=vec[v].size();
for(int j=0; j<ns; j++)
{
int to=vec[v][j];
if(dist[i][v]+1<dist[i][to])
{
dist[i][to]=dist[i][v]+1;
q.push(to);
}
}
}
}
pos=0;
vis[pos]=1;
return 0;
}
int nextMove(int R)
{
int ns=vec[pos].size();
int newpos=-1;
for(int i=1; i<ns; i++)
{
int to=vec[pos][i];
if(newpos==-1 && vis[to]==0)
{
newpos=to;
continue;
}
if(dist[to][R]<dist[newpos][R] && vis[to]==0) newpos=to;
}
vis[newpos]=1;
return newpos;
}
# | 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... |