Submission #317366

#TimeUsernameProblemLanguageResultExecution timeMemory
317366mohamedsobhi777Parachute rings (IOI12_rings)C++14
0 / 100
27 ms1184 KiB
#include <bits/stdc++.h> using namespace std; int N; const int cn = 10000; vector<int> adj[cn]; int deg[cn]; int vis[cn]; int c; bool bd = 1; void dfs(int x, int p) { vis[x] = c; for (auto u : adj[x]) { if (u == p) continue; if (vis[u] == c) bd = 0; else dfs(u, x); } } int brute() { ++c; set<int> cri; for (int i = 0; i < N; ++i) { for (auto u : adj[i]) { deg[u]--; deg[i]--; } bool ok = 1; for (int j = 0; j < N; ++j) { if (deg[j] > 2) ok = 0; if (vis[i] != c) { bd = 1; dfs(i, i); ok &= bd; } } if (ok) cri.insert(i); for (auto u : adj[i]) { deg[u]++; deg[i]++; } } return (int)cri.size(); } void Init(int N_) { N = N_; } void Link(int A, int B) { adj[A].push_back(B); adj[B].push_back(A); deg[A]++; deg[B]++; } int CountCritical() { return brute(); return N; }
#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...