Submission #350455

#TimeUsernameProblemLanguageResultExecution timeMemory
350455amunduzbaev낙하산 고리들 (IOI12_rings)C++14
0 / 100
180 ms262148 KiB
#ifndef EVAL #include "grader.cpp" #endif #include "bits/stdc++.h" using namespace std; #define pb push_back #define ss second #define ff first const int N = 5e3+5; int n; vector<pair<int, int>> edges[N]; int used[N], vis[N]; void Init(int nn) { n = nn; } int last; void Link(int A, int B) { edges[A].pb({B, ++last}); edges[B].pb({A, last}); } bool dfs(int u){ if(vis[u]) return 0; int cnt = 0; for(auto x:edges[u]){ if(used[x.ss]) continue; if(cnt) return 0; cnt++; dfs(x.ff); }return 1; } int CountCritical(){ int cnt = 0; for(int i=0;i<n;i++){ for(auto x:edges[i]) used[x.ss] = 1; vis[i] = 1; bool ok = 1; for(int j=0;j<n && ok;j++){ if(!vis[j]){ int cnt = 0; for(auto x:edges[j]){ if(used[x.ss]) continue; cnt++; ok &= dfs(x.ff); } if(cnt > 2) ok = 0; } } for(auto x:edges[i]) used[x.ss] = 0; memset(vis, 0, sizeof vis); cnt += ok; } return cnt; }
#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...