제출 #1223297

#제출 시각아이디문제언어결과실행 시간메모리
1223297_rain_Papričice (COCI20_papricice)C++20
50 / 110
1096 ms12360 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){ if (ban[u]) return; 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){ if (ban[u]) return; 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); for(int i=1;i<=n;++i){ mx=sub[i],mn=sub[i]; ban[i]=true; re_dfs(1,0); dfs_calc(1,0); ban[i]=false; } cout<<ans; return 0; }

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

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