제출 #1223296

#제출 시각아이디문제언어결과실행 시간메모리
1223296_rain_Papričice (COCI20_papricice)C++20
0 / 110
3 ms4932 KiB
#include<bits/stdc++.h> using namespace std; typedef long long LL; const int N=(int)2e5; vector<int>ke[N+2]; int sub[N+2],n; bool ban[N+2]={}; void add_canh(int u,int v){ ke[u].push_back(v) , ke[v].push_back(u); return; } void dfs(int u,int p){ sub[u]=1; for(auto&v:ke[u]){ if (v==p) continue; dfs(v,u); sub[u]+=sub[v]; } return; } int mx=0,mn=0; int ans=(int)1e9; void re_dfs(int u,int p){ sub[u]=1; for(auto&v:ke[u]){ if (v==p) continue; if (ban[v]) continue; re_dfs(v,u); sub[u]+=sub[v]; } } void dfs_calc(int u,int p){ for(auto&v:ke[u]){ if (v==p||ban[v]) continue; int tmp_mx=max(mx,max(sub[u]-sub[v],sub[v])); int tmp_mn=min(mn,min(sub[u]-sub[v],sub[v])); ans=min(ans,tmp_mx-tmp_mn); sub[u]-=sub[v]; sub[v]+=sub[u]; dfs_calc(v,u); sub[v]-=sub[u]; sub[u]+=sub[v]; } } int main(){ ios::sync_with_stdio(false); cin.tie(0) ; cout.tie(0); #define task "main" if (fopen(task".inp","r")){ freopen(task".inp","r",stdin); freopen(task".out","w",stdout); } cin>>n; for(int i=1;i<n;++i){ int u,v; cin>>u>>v; add_canh(u,v); } dfs(1,0); int need=n/3; int v=-1,dis=(int)1e9; for(int i=1;i<=n;++i) if (dis>abs(need-sub[i])){ v=i; dis=abs(need-sub[i]); } ban[v]=true; mx=sub[v],mn=sub[v]; re_dfs(1,0); dfs_calc(1,0); cout<<ans; return 0; }

컴파일 시 표준 에러 (stderr) 메시지

papricice.cpp: In function 'int main()':
papricice.cpp:58:24: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   58 |                 freopen(task".inp","r",stdin);
      |                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
papricice.cpp:59:24: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   59 |                 freopen(task".out","w",stdout);
      |                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...