Submission #423939

#TimeUsernameProblemLanguageResultExecution timeMemory
423939cfalasToy Train (IOI17_train)C++14
5 / 100
7 ms1520 KiB
#include "train.h" #include<bits/stdc++.h> using namespace std; #define mp make_pair #define INF 10000000 #define MOD 1000000007 #define MID ((l+r)/2) #define HASHMOD 2305843009213693951 #define ll long long #define ull unsigned long long #define F first #define S second typedef pair<ll, ll> ii; typedef pair<ii, int> iii; typedef vector<int> vi; typedef vector<ii> vii; typedef map<int, int> mii; #define EPS 1e-6 #define FOR(i,n) for(int i=0;i<((int)(n));i++) #define FORi(i,a,b) for(int i=((int)(a));i<((int)(b));i++) #define FOA(v, a) for(auto &v : a) #define len(x) ((int)x.size()) vi who_wins(vi a, vi r, vi u, vi v) { int n = len(a); vi res(n, 0); vi deg(n,0); vi loop(n,0); FOR(i,len(u)){ if(u[i]==v[i]) loop[u[i]] = 1; deg[u[i]]++; } assert(loop[n-1]); res[n-1] = loop[n-1] && r[n-1]; for(int i=n-2;i>=0;i--){ if(deg[i]==1){ if(loop[i] && r[i]) res[i] = 1; else if(loop[i] && !r[i]) res[i] = 0; else if(!loop[i] && r[i]) res[i] = res[i+1]; else if(!loop[i] && !r[i]) res[i] = res[i+1]; } else if(deg[i]==2){ if(loop[i] && r[i] && a[i]) res[i] = 1; else if(loop[i] && r[i] && !a[i]) res[i] = res[i+1]; else if(loop[i] && !r[i] && a[i]) res[i] = res[i+1]; else if(loop[i] && !r[i] && !a[i]) res[i] = 0; else if(!loop[i] && r[i]) assert(0); else if(!loop[i] && !r[i]) assert(0); } } 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...