Submission #350162

#TimeUsernameProblemLanguageResultExecution timeMemory
350162juggernautParachute rings (IOI12_rings)C++14
20 / 100
4070 ms1024 KiB
#ifndef EVAL #include"grader.cpp" #endif #include<bits/stdc++.h> using namespace std; vector<int>g[5005]; bool on[5005],vis[5005]; int n,deg[5005]; bool dfs(int v,int p){ bool flag=false; vis[v]=true; for(int to:g[v])if(to!=p){ if(on[to])continue; if(flag)return false; if(vis[to])return false; if(!dfs(to,v))return false; flag=true; } return true; } bool check(){ for(int i=0;i<n;i++)vis[i]=0; for(int i=0;i<n;i++)if(!on[i]&&!vis[i]&&deg[i]<2)if(!dfs(i,i))return false; for(int i=0;i<n;i++)if(!vis[i]&&!on[i])return false; return true; } void Init(int N){n=N;} void Link(int x,int y){ g[x].push_back(y); g[y].push_back(x); deg[x]++; deg[y]++; } int CountCritical(){ int cnt=0; for(int i=0;i<n;i++){ on[i]=true; for(auto to:g[i])deg[to]--; cnt+=check(); for(auto to:g[i])deg[to]++; on[i]=false; } return cnt; } /* 7 13 -1 1 2 -1 0 5 -1 2 0 -1 3 2 -1 3 5 -1 4 3 -1 */
#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...