//In the name of God
#include <bits/stdc++.h>
#include "train.h"
using namespace std;
typedef int ll;
typedef pair<ll, ll> pll;
const ll maxn = 2e5 + 100;
const ll mod = 1e9 + 7;
const ll inf = 1e9;
#define fast_io ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define file_io freopen("input.txt", "r+", stdin);freopen("output.txt", "w+", stdout);
#define pb push_back
#define Mp make_pair
#define F first
#define S second
#define Sz(x) ll((x).size())
#define all(x) (x).begin(), (x).end()
ll n, m, c[maxn], t;
bool del[maxn], ok[maxn], vis[maxn], w[maxn], okk[maxn];
bool sub1 = 1, sub3 = 1, sub4 = 1;
vector<ll> vec, g[maxn], gp[maxn], com[maxn];
void dfs(ll v){
vis[v] = 1;
if(del[v]) return;
for(ll u : g[v]){
if(!vis[u]) dfs(u);
}
vec.pb(v);
}
void sfd(ll v){
vis[v] = 1;
if(del[v]) return;
for(ll u : gp[v]){
if(!vis[u]) sfd(u);
}
c[v] = t;
com[t].pb(v);
if(ok[v]) okk[t] = 1;
}
bool solve(ll v){
if(w[v]) return 1;
vis[v] = 1;
for(ll u : g[v]){
if(!vis[u] && solve(u)) return 1;
}
return 0;
}
vector<int> who_wins(vector<int> a, vector<int> r, vector<int> v, vector<int> u){
n = Sz(a);
m = Sz(v);
for(ll i = 0; i < m; i++){
if(u[i] != v[i] && u[i] != v[i] + 1) sub1 = 0;
g[v[i]].pb(u[i]);
gp[u[i]].pb(v[i]);
}
vector<int> res(n);
for(ll i = 0; i < n; i++){
if(a[i]) sub3 = 0;
else sub4 = 0;
}
for(ll i = 0; i < n; i++){
if(sub3) ok[i] = r[i];
else ok[i] = 1;
if(sub4) del[i] = r[i];
}
for(ll i = 0; i < n; i++){
if(!vis[i]) dfs(i);
}
fill(vis, vis + n, 0);
reverse(all(vec));
for(ll i = 0; i < n; i++){
if(!vis[i]){
sfd(i);
t++;
}
}
for(ll i = 0; i < n; i++){
if(del[i]) continue;
for(ll j : g[i]){
if(i == j && ok[i]) w[i] = 1;
}
if(okk[i]) w[i] = 1;
}
for(ll i = 0; i < n; i++){
fill(vis, vis + n, 0);
res[i] = solve(i);
if(sub4) res[i] ^= 1;
}
return res;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
29 ms |
15436 KB |
3rd lines differ - on the 1st token, expected: '0', found: '1' |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
9 ms |
14344 KB |
3rd lines differ - on the 1st token, expected: '0', found: '1' |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
30 ms |
15564 KB |
Output is correct |
2 |
Correct |
30 ms |
15668 KB |
Output is correct |
3 |
Correct |
30 ms |
15596 KB |
Output is correct |
4 |
Incorrect |
31 ms |
15596 KB |
3rd lines differ - on the 1st token, expected: '1', found: '0' |
5 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
188 ms |
15448 KB |
3rd lines differ - on the 696th token, expected: '0', found: '1' |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
43 ms |
15564 KB |
3rd lines differ - on the 2nd token, expected: '0', found: '1' |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
29 ms |
15436 KB |
3rd lines differ - on the 1st token, expected: '0', found: '1' |
2 |
Halted |
0 ms |
0 KB |
- |