Submission #1143274

#TimeUsernameProblemLanguageResultExecution timeMemory
1143274Luca7Triumphal arch (POI13_luk)C++20
0 / 100
884 ms19744 KiB
#include<iostream> #include<vector> using namespace std; // ifstream cin("data.in"); // ofstream cout("data.out"); vector<vector<int>> graph; vector<int> vlev; int maxl=0; void dfs(int p,int u,int l){ vlev[l]++; maxl=max(maxl,l); for(auto v:graph[u]){ if(p!=v){ dfs(u,v,l+1); } } } bool testk(int n,int k){ vector<int> vlev1=vlev; for(int l=0;l<=maxl;l++){ int nr=k; if(vlev1[l]>0){ return false; } for(int i=l+1;i<=maxl;i++){ if(vlev1[i]>0){ if(vlev1[i]>nr){ vlev1[i]-=nr; nr=0; } else{ nr-=vlev1[i]; vlev1[i]=0; } } if(nr==0){ break; } } } return true; } int main(){ int i,j,n,u,v,sum=0; cin>>n; graph.resize(n+1); vlev.resize(n+1,0); for(i=1;i<n;i++){ cin>>u>>v; graph[u].push_back(v); graph[v].push_back(u); } int res=1; dfs(-1,1,0); vlev[0]=0; for(i=0;i<=n;i++){ res=max(res,vlev[i]); sum+=vlev[i]; } for(i=1;i<=res;i++){ if(testk(n,i)){ break; } } cout<<i; 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...