Submission #350936

#TimeUsernameProblemLanguageResultExecution timeMemory
350936juggernautParachute rings (IOI12_rings)C++14
20 / 100
4091 ms42760 KiB
#ifndef EVAL #include"grader.cpp" #endif #include<bits/stdc++.h> using namespace std; vector<int>g[1000005]; bool on[1000005],vis[1000005]; int n,deg[1000005]; bool flag; #define DEBUG(x) cout<<#x<<"="<<x<<"\n" void go(int v,int p){ if(on[v])return; //cycle_size++; vis[v]=1; for(int to:g[v])if(to!=p){ if(vis[to]){ flag=true; continue; } go(to,v); } } bool check(){ for(int i=0;i<n;i++)vis[i]=0; for(int i=0;i<n;i++){ if(on[i])continue; if(deg[i]>2)return false; if(vis[i])continue; flag=false; go(i,i); if(flag)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(int to:g[i])deg[i]--,deg[to]--; cnt+=check(); for(int to:g[i])deg[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...