Submission #1136886

#TimeUsernameProblemLanguageResultExecution timeMemory
1136886GabrielTriumphal arch (POI13_luk)C++20
0 / 100
97 ms19272 KiB
#include "bits/stdc++.h" using namespace std; vector<bool> Visitados; vector< vector<long long> > Grafo; bool Probar(long long Nodo, long long Gratis, long long Constructores){ Visitados[Nodo] = 1; bool r = 1; long long Necesario = Grafo[Nodo].size() - 1; if(Necesario > Gratis) return 0; Gratis += Constructores - Necesario; for(auto E: Grafo[Nodo]){ if(!Visitados[E]) r = r or Probar(E, Gratis, Constructores); } return r; } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); long long n, i = 0, d, Mejor; cin>>n; d = n + 22; Mejor = d; Grafo.assign(n + 1, {}); Grafo[0].push_back(n); Grafo[n].push_back(0); n--; while(n--){ long long a, b; cin>>a>>b; a--; b--; Grafo[a].push_back(b); Grafo[b].push_back(a); } n = Grafo.size(); while(1){ long long p = (i + d) / 2; Visitados.assign(n, 0); Visitados.back() = 1; if(Probar(0, p, p)){ d = p - 1; Mejor = p; } else i = p + 1; if(i >= d + 1) break; } cout<<Mejor; return 0; }
#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...
#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...