Submission #1143375

#TimeUsernameProblemLanguageResultExecution timeMemory
1143375Luca7Triumphal arch (POI13_luk)C++20
0 / 100
407 ms19792 KiB
#include<iostream> #include<vector> using namespace std; // ifstream cin("data.in"); // ofstream cout("data.out"); vector<vector<int>> graph; vector<pair<int,int>> vval; vector<int> vlev; int maxl=0; int dfs(int p,int u){ int val=-1,vv=-1; for(auto v:graph[u]){ if(p!=v){ int nr=dfs(u,v); if(val<nr){ val=nr; vv=v; } } } int nr=graph[u].size()-1; val=max(val,nr); vval[u]={val,vv}; return val; } bool testk(int n,int k){ vector<int> vlev1=vlev; for(int l=0;l<=n;l++){ int nr=k; if(vlev1[l]>0){ return false; } for(int i=l+1;i<=n;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); vval.resize(n+1); 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); vlev.push_back(0); u=1; while(u!=-1){ vlev.push_back(vval[u].first); u=vval[u].second; } for(i=1;i<=n;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...