제출 #1143252

#제출 시각아이디문제언어결과실행 시간메모리
1143252snpmrnhlol새로운 문제 (POI13_luk)C++20
100 / 100
456 ms27676 KiB
#include<bits/stdc++.h> using namespace std; const int N = 3e5; vector <int> e[N]; int deg[N], dp[N]; bool ok = 1; void dfs(int x, int node, int p = -1){ int rem = x; for(auto i : e[node]){ if(i == p)continue; dfs(x, i, node); rem-=dp[i]; rem--; } dp[node] = max(-rem, 0); } void chk(int x){ dfs(x, 0, -1); if(dp[0] != 0)ok = 0; } int main(){ int n; cin>>n; for(int i = 0;i < n - 1;i++){ int u, w; cin>>u>>w; u--;w--; e[u].push_back(w); e[w].push_back(u); deg[u]++; deg[w]++; } int l = 0, r = n; while(l != r){ int mij = (l + r)/2; ok = 1; chk(mij); if(ok == 0)l = mij + 1; else r = mij; } cout<<l<<'\n'; 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...