Submission #406897

#TimeUsernameProblemLanguageResultExecution timeMemory
406897cheissmartToy Train (IOI17_train)C++14
0 / 100
1316 ms1996 KiB
#include "train.h" #include <bits/stdc++.h> #define IO_OP std::ios::sync_with_stdio(0); std::cin.tie(0); #define F first #define S second #define V vector #define PB push_back #define MP make_pair #define EB emplace_back #define ALL(v) (v).begin(), (v).end() using namespace std; typedef long long ll; typedef pair<int, int> pi; typedef V<int> vi; string _reset = "\u001b[0m", _yellow = "\u001b[33m", _bold = "\u001b[1m"; void DBG() { cerr << "]" << _reset << endl; } template<class H, class...T> void DBG(H h, T ...t) { cerr << to_string(h); if(sizeof ...(t)) cerr << ", "; DBG(t...); } #ifdef CHEISSMART #define debug(...) cerr << _yellow << _bold << "Line(" << __LINE__ << ") -> [" << #__VA_ARGS__ << "]: [", DBG(__VA_ARGS__) #else #define debug(...) #endif const int INF = 1e9 + 7, N = 5005; vi G[N], rG[N], order, r; int vis[N], scc[N], cnt[N], good[N], tt; void dfs(int u) { vis[u] = 1; for(int v:rG[u]) if(!vis[v]) dfs(v); order.PB(u); } void dfs1(int u, int id) { scc[u] = id; cnt[id]++; if(r[u]) good[id] = 1; for(int v:G[u]) if(scc[v] == 0) dfs1(v, id); } vi who_wins(vi a, vi r, vi u, vi v) { ::r = r; int n = a.size(), m = u.size(); assert(u.size() == v.size()); for(int i = 0; i < m; i++) { G[u[i]].PB(v[i]); rG[v[i]].PB(u[i]); } dfs(0); for(int i:order) if(!scc[i]) { dfs1(i, ++tt); } vi ans(n); for(int i = 0; i < n; i++) { vi vis(n); function<void(int)> dfs = [&] (int u) { vis[u] = 1; int id = scc[id]; if(good[id]) { if(cnt[id] > 1) ans[i] = 1; else if(count(ALL(G[u]), u)) ans[i] = 1; } for(int v:G[u]) if(!vis[v]) dfs(v); }; dfs(i); } return ans; }

Compilation message (stderr)

train.cpp: In lambda function:
train.cpp:67:8: warning: 'id' is used uninitialized in this function [-Wuninitialized]
   67 |    int id = scc[id];
      |        ^~
#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...