Submission #420512

#TimeUsernameProblemLanguageResultExecution timeMemory
420512AugustinasJucasToy Train (IOI17_train)C++14
0 / 100
589 ms1100 KiB
#include "train.h" #include <bits/stdc++.h> using namespace std; vector<int> charg; vector<int> priklauso; int n; const int dydis = 5e3 + 10; bool vis[dydis] = {}; bool can[dydis] = {}; int onS[dydis] = {}; bool can1[dydis] = {}; vector<int> gr[dydis]; bool dfs(int v){ if(onS[v]) return 0; if(vis[v]) return can[v]; vis[v] = 1; if(charg[v]) { can[v] = 1; return 1; } //cout << "dfs, v = " << v << endl; bool ret = 0; for(auto x : gr[v]){ onS[v]++; ret = ret | dfs(x); onS[v]--; } can[v] = ret; return ret; } bool dfs1(int v){ if(onS[v]) return 0; if(vis[v]) return can1[v]; vis[v] = 1; if(can[v]) { can1[v] = 1; return 1; } bool ret = 0; for(auto x : gr[v]){ onS[x]++; ret = ret | dfs1(x); onS[x]--; } can1[v] = ret; return ret; } vector<int> viskasPirmo(){ vector<int> ret(n, 0); for(int i = 0; i < n; i++){ // pradedu i for(int j = 0; j < n; j++) vis[j] = onS[j] = can[j] = can1[j] = 0; // cout << "i = " << i << endl; dfs(i); // cout << "gaunam, kad pasiekti ch gales: "; for(int j = 0; j < n; j++) if(can[j]) cout << j << ", "; cout << endl; for(int j = 0; j < n; j++) vis[j] = onS[j] = 0; for(int j = 0; j < n; j++) if(charg[j]) ret[i] = ret[i] || dfs1(j); } return ret; } vector<int> viskasAntro(){ vector<int> ret(n); return ret; } vector<int> vienCharg(){ vector<int> ret(n); return ret; } vector<int> who_wins(vector<int> a, vector<int> r, vector<int> u, vector<int> v) { vector<int> res(a.size()); priklauso = a; charg = r; n = a.size(); for(int i = 0; i < (int)u.size(); i++){ gr[u[i]].push_back(v[i]); // gr[v[i]].push_back(u[i]); } int cnt[2] = {0}; for(auto x : a) cnt[x]++; int rc = 0; for(auto x : r) rc += x; if(cnt[1] == 0){ return viskasPirmo(); }else if(cnt[0] == 0){ return viskasAntro(); }else if(rc == 0){ return vienCharg(); } //for(int i = 0; i < n; i++) return res; }

Compilation message (stderr)

train.cpp: In function 'std::vector<int> viskasPirmo()':
train.cpp:55:46: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
   55 |   for(int j = 0; j < n; j++) vis[j] = onS[j] = can[j] = can1[j] = 0;
      |                                       ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
train.cpp:60:46: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
   60 |   for(int j = 0; j < n; j++) vis[j] = onS[j] = 0;
      |                                       ~~~~~~~^~~
#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...