Submission #1322609

#TimeUsernameProblemLanguageResultExecution timeMemory
1322609JuanJLToy Train (IOI17_train)C++20
5 / 100
3 ms824 KiB
#include "train.h"
#include <bits/stdc++.h>

#define fst first
#define snd second
#define pb push_back
#define SZ(x) (int)x.size()
#define ALL(x) x.begin(),x.end()
#define forn(i,a,b) for(int i = a; i<b;i++)
#define mset(a,v) memset(a,v,sizeof(a))

using namespace std;
typedef long long ll;

const int MAXN = 5000+5;

ll adj[MAXN];
bool cicle[MAXN];
std::vector<int> who_wins(std::vector<int> a, std::vector<int> r, std::vector<int> u, std::vector<int> v) {

	mset(adj,-1);
	forn(i,0,SZ(u)){
		if(u[i]==v[i]){ cicle[u[i]]=true; continue; }
		adj[u[i]]=(v[i]);
	}

	vector<int> res(SZ(r),0);
	for(int i = SZ(r)-1; i>=0; i--){
		if(a[i]==1){
			if(r[i] && cicle[i]) res[i]=1;
			else{
				res[i]=0;
				if(adj[i]!=-1) res[i]=res[adj[i]];
			}
		}else{
			if(!r[i] && cicle[i]) res[i]=0;
			else{
				res[i]=1;
				if(adj[i]!=-1) res[i]=res[adj[i]];
			}
		}
	}
	return res;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...