Submission #778480

#TimeUsernameProblemLanguageResultExecution timeMemory
778480I_Love_EliskaM_Toy Train (IOI17_train)C++14
5 / 100
940 ms1520 KiB
#include "train.h" #include <bits/stdc++.h> using namespace std; #define forn(i,n) for(int i=0;i<n;++i) #define pb push_back #define ll long long vector<int> p1(vector<int>a,vector<int>r,vector<int>u,vector<int>v) { int n=a.size(), m=u.size(); vector<int> s(n); vector<int> f(n); vector<int> ans(n); forn(i,m) if (u[i]==v[i]) s[u[i]]=1; forn(i,m) if (u[i]!=v[i]) f[u[i]]=1; int now=0; for (int i=n-1; i>=0; --i) { if (s[i]) { if (now) { if (!a[i]) { if (!r[i]) now=0; } else { if (f[i]) now=1; else now = r[i]; } } else { if (a[i]) { if (r[i]) now=1; } else { if (f[i]) now=0; else now = r[i]; } } } ans[i]=now; } return ans; } const int N=5555; vector<int> adj[N]; int vis[N]; int ok[N]; int dfs(int u, int s) { if (vis[u] && u==s) return 1; if (vis[u]) return 0; vis[u]=1; int z=0; for(auto&v:adj[u]) z|=dfs(v,s); return z; } int dfs2(int u) { if (ok[u]) return 1; if (vis[u]) return 0; vis[u]=1; int z=0; for(auto&v:adj[u]) z|=dfs2(v); return z; } vector<int> p3(vector<int>a,vector<int>r,vector<int>u,vector<int>v) { int n=a.size(), m=u.size(); vector<int> ans(n); vector<int> ok(n); forn(i,m) adj[u[i]].pb(v[i]); forn(i,n) if (r[i]) { forn(j,n) vis[j]=0; int q=dfs(i,i); ok[i]=q; } forn(i,n) { forn(j,n) vis[j]=0; int q=dfs2(i); ans[i]=q; } return ans; } vector<int> p4(vector<int>a,vector<int>r,vector<int>u,vector<int>v) { int n=a.size(), m=u.size(); vector<int> s(n); vector<int> ans(n); forn(i,m) if (u[i]==v[i]) s[i]=1; int now; for (int i=n-1; i>=0; --i) { if (s[i]) now=a[i]; ans[i]=now; } return ans; } vector<int> who_wins(vector<int>a,vector<int>r,vector<int>u,vector<int>v) { int n=a.size(), m=u.size(); int z=1; forn(i,m) z&=(u[i]==v[i]) || (v[i]==(u[i]+1)); if (z) { return p1(a,r,u,v); } z=1; forn(i,n) z&=a[i]; if (z) return p3(a,r,u,v); forn(i,n) z|=a[i]; if (!z) return p4(a,r,u,v); }

Compilation message (stderr)

train.cpp: In function 'std::vector<int> who_wins(std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>)':
train.cpp:104:1: warning: control reaches end of non-void function [-Wreturn-type]
  104 | }
      | ^
train.cpp: In function 'std::vector<int> p4(std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>)':
train.cpp:85:9: warning: 'now' may be used uninitialized in this function [-Wmaybe-uninitialized]
   85 |   ans[i]=now;
#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...