제출 #1150108

#제출 시각아이디문제언어결과실행 시간메모리
1150108enzy낙하산 고리들 (IOI12_rings)C++20
0 / 100
226 ms48896 KiB
#include<bits/stdc++.h> using namespace std; const int maxn=1e6+10; int n, resp, qtd3, viz[maxn], eh[maxn]; vector<int>v[maxn]; bool ja=false; void Init(int N_){ resp = n = N_; } void Link(int a, int b){ v[a].push_back(b); v[b].push_back(a); if(v[a].size()>=4){ if(ja) resp=0; else if(qtd3==viz[a]+1) resp=1; // tem o proprio a ja=true; } if(v[b].size()>=4){ if(ja) resp=0; else if(qtd3==viz[b]+1) resp=1; // tem o proprio b ja=true; } set<int>used; if(v[a].size()==3){ qtd3++; eh[a]++; int at=0; if(qtd3==viz[a]+eh[a]) at++; for(int i : v[a]){ viz[i]++; used.insert(i); if(viz[i]+eh[i]==qtd3) at++; } resp=at; } if(v[b].size()==3){ qtd3++; eh[b]++; int at=0; if(qtd3==viz[b]+eh[b]) at++; for(int i : v[b]){ if(used.count(i)) continue; viz[i]++; if(viz[i]+eh[i]==qtd3) at++; } resp=at; } } int CountCritical(){ return resp; }
#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...