Submission #296007

#TimeUsernameProblemLanguageResultExecution timeMemory
296007MuhammetaliToy Train (IOI17_train)C++11
0 / 100
14 ms1920 KiB
#include "train.h" #include <bits/stdc++.h> #define mp make_pair #define f first #define s second #define sz(x) (int)(x).size() #define rsz resize #define ins insert #define ft front() #define bk back() #define pf push_front #define pb push_back #define eb emplace_back #define lb lower_bound #define ub upper_bound using namespace std; typedef long long ll; typedef long double ld; typedef pair<int,int> pi; typedef pair<ll,ll> pl; typedef vector<int> vi; typedef vector<bool> vb; typedef vector<ll> vl; typedef vector<pi> vpi; typedef vector<pl> vpl; std::vector<int> who_wins(std::vector<int> a, std::vector<int> r, std::vector<int> u, std::vector<int> v) { vi res(a.size()); deque<int>g,gg; set<int>s[6000]; for (int i=0;i<sz(u);i++)s[u[i]].ins(v[i]);; for (int i=0;i<sz(a);i++) { if (s[i].count(i)==1) { if (a[i]==0 && r[i]==0) g.pb(i); if (r[i]==1) { if (a[i]==1)gg.pb(i); if (s[i].size()==1)gg.pb(i); } } } for (int i=0;i<sz(a);i++) { if (s[i].count(i)==1 && a[i]==1) { res[i]=1; continue; } while(i>g.front() && sz(g)>0)g.pop_front(); while(i>gg.front() && sz(gg)>0)gg.pop_front(); if (sz(g)==0 && sz(gg)==0)break; if (sz(g)==0)res[i]=1; else if (sz(gg)==0)res[i]=0; else if (g.front()<gg.front())res[i]=0; else res[i]=1; } 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...