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...