Submission #119779

#TimeUsernameProblemLanguageResultExecution timeMemory
119779ahmad_salahParachute rings (IOI12_rings)C++17
20 / 100
4090 ms41204 KiB
#include <bits/stdc++.h> using namespace std; const int M = 1e6; int n, endss; vector<int> adj[M]; bool v[M], ok; void dfs(int node, int forb) { if (!v[node]) { v[node] = 1; int cnt = 0; for (int x : adj[node]) if (x != forb) cnt++; if (cnt > 2) { ok = false; return; } if (!cnt) endss = 2; else if (cnt == 1) endss++; for (int x : adj[node]) if (x != forb) dfs(x, forb); } } void Init(int N) { n = N; } void Link(int a, int b) { adj[a].push_back(b); adj[b].push_back(a); } int CountCritical() { int ans = 0; for (int i = 0; i < n; i++) { memset(v, 0, sizeof v); ok = true; for (int j = 0; j < n; j++) if (!v[j] && i != j) { endss = 0; dfs(j, i); if (endss != 2) ok = false; } ans += ok; } return ans; }
#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...