#include<bits/stdc++.h>
#include "train.h"
using namespace std;
int n, m;
bool isC[5005], used[5005];
bool badv[5005];
vector<int> gr[5005], rev_gr[5005];
void dfs(int v)
{
int brs=gr[v].size();
for(int i=0; i<brs; i++)
{
int nv=gr[v][i];
if(used[nv]) continue;
used[nv]=1;
dfs(nv);
}
}
vector<int> ans;
void dfs2(int v)
{
ans[v-1]=1;
int brs=rev_gr[v].size();
for(int i=0; i<brs; i++)
{
int nv=rev_gr[v][i];
if(ans[nv-1]) continue;
dfs2(nv);
}
}
std::vector<int> who_wins(std::vector<int> a, std::vector<int> r, std::vector<int> u, std::vector<int> v)
{
if(r[0]==1)
{
n=a.size();
ans.resize(n);
for(int i=0; i<n; i++) ans[i]=0;
m=u.size();
for(int i=0; i<n; i++)
{
if(r[i]) {isC[i+1]=1; badv[i+1]=1;}
}
for(int i=0; i<m; i++)
{
gr[u[i]+1].push_back(v[i]+1);
rev_gr[v[i]+1].push_back(u[i]+1);
}
for(int t=1; t<=n; t++)
{
for(int i=1; i<=n; i++)
{
if(!badv[i])
{
bool fl0=0;
int brs=gr[i].size();
for(int j=0; j<brs; j++) if(!badv[gr[i][j]]) fl0=1;
if(!fl0) badv[i]=1;
}
}
}
for(int k=1; k<=n; k++)
{
if(!badv[k]) dfs2(k);
}
for(int k=0; k<n; k++) ans[k]=1-ans[k];
}
else
{
n=a.size();
ans.resize(n);
for(int i=0; i<n; i++) ans[i]=0;
m=u.size();
for(int i=0; i<n; i++) if(r[i]) isC[i+1]=1;
for(int i=0; i<m; i++)
{
gr[u[i]+1].push_back(v[i]+1);
rev_gr[v[i]+1].push_back(u[i]+1);
}
for(int i=1; i<=n; i++)
{
if(isC[i])
{
dfs(i);
if(!used[i]) isC[i]=0;
memset(used, 0, sizeof(used));
}
}
for(int i=1; i<=n; i++)
{
if(isC[i]) dfs2(i);
}
}
return ans;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
32 ms |
980 KB |
3rd lines differ - on the 14th token, expected: '1', found: '0' |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
0 ms |
468 KB |
3rd lines differ - on the 2nd token, expected: '1', found: '0' |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
140 ms |
1420 KB |
Output is correct |
2 |
Correct |
147 ms |
1404 KB |
Output is correct |
3 |
Correct |
126 ms |
1392 KB |
Output is correct |
4 |
Correct |
198 ms |
1512 KB |
Output is correct |
5 |
Correct |
30 ms |
1364 KB |
Output is correct |
6 |
Correct |
50 ms |
1364 KB |
Output is correct |
7 |
Correct |
148 ms |
1364 KB |
Output is correct |
8 |
Correct |
5 ms |
1364 KB |
Output is correct |
9 |
Correct |
7 ms |
1380 KB |
Output is correct |
10 |
Correct |
7 ms |
1364 KB |
Output is correct |
11 |
Correct |
5 ms |
1236 KB |
Output is correct |
12 |
Correct |
5 ms |
1224 KB |
Output is correct |
13 |
Correct |
6 ms |
1492 KB |
Output is correct |
14 |
Correct |
6 ms |
1492 KB |
Output is correct |
15 |
Correct |
6 ms |
1540 KB |
Output is correct |
16 |
Correct |
6 ms |
1492 KB |
Output is correct |
17 |
Correct |
6 ms |
1492 KB |
Output is correct |
18 |
Correct |
51 ms |
1096 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
15 ms |
1128 KB |
Output is correct |
2 |
Incorrect |
5 ms |
1304 KB |
3rd lines differ - on the 3rd token, expected: '0', found: '1' |
3 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
6 ms |
1492 KB |
3rd lines differ - on the 2nd token, expected: '0', found: '1' |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
32 ms |
980 KB |
3rd lines differ - on the 14th token, expected: '1', found: '0' |
2 |
Halted |
0 ms |
0 KB |
- |