제출 #448168

#제출 시각아이디문제언어결과실행 시간메모리
448168jk410Papričice (COCI20_papricice)C++17
50 / 110
90 ms588 KiB
#include <bits/stdc++.h> using namespace std; const int INF=1e9; int N,Ans=INF; int Size[2001]; vector<int> Edge[2001]; vector<pair<int,int>> Edge_List; void dfs(int v,int par){ Size[v]=1; for (int i:Edge[v]){ if (i==par) continue; dfs(i,v); Size[v]+=Size[i]; } } void f(int v,int par){ for (int i=1; i<=N; i++) Size[i]=0; dfs(v,par); for (int i=1; i<=N; i++){ if (!Size[i]||i==par) continue; Ans=min(Ans,max({Size[i],Size[v]-Size[i],N-Size[v]})-min({Size[i],Size[v]-Size[i],N-Size[v]})); } } int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>N; for (int i=1; i<N; i++){ int a,b; cin>>a>>b; Edge[a].push_back(b); Edge[b].push_back(a); Edge_List.push_back({a,b}); } for (auto i:Edge_List){ f(i.first,i.second); f(i.second,i.first); } cout<<Ans; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...