Submission #1143314

#TimeUsernameProblemLanguageResultExecution timeMemory
1143314calisovraduTriumphal arch (POI13_luk)C++20
0 / 100
358 ms19896 KiB
#include <bits/stdc++.h>
using namespace std;
    vector<vector<int>> v;
    vector<int> depth;
int n;
bool bfs(int crews){
    vector<int> checked(n+1);
    checked[1]=1;
    int left = 0,lastday=0;
    queue<int> q;
    q.push(1);
    while(!q.empty()){
    int nod = q.front();

    if(depth[nod]>lastday){
        lastday++;
        left+=crews;
    }
    q.pop();

        for(int i=0;i<v[nod].size();i++){
            int newnod = v[nod][i];
            if(checked[newnod]==0){
               checked[newnod]=1;
               q.push(newnod);
               left--;
               if(left<0)
               return false;
           }
        }
    }
    return true;
}
int main() {
    cin>>n;
    v.resize(n+1);
    depth.resize(n+1);
    for(int i=1;i<=n-1;i++){
        int a,b;
        cin>>a>>b;
        v[a].push_back(b);
        v[b].push_back(a);
    }
    depth[1]=1;
    
    queue<int> q;
    q.push(1);
    while(!q.empty()){
    int nod = q.front();
    q.pop();

        for(int i=0;i<v[nod].size();i++){
            int newnod = v[nod][i];
            if(depth[newnod]==0){
               depth[newnod]=depth[nod]+1;
               q.push(newnod);
           }
        }
    }
    int l=1,r=n,mij,corect;
    while(l<=r){
        mij=(l+r)/2;
        bool res = bfs(mij);
        if(res==true){
            corect=mij;
            r=mij-1;
        }else
        l=mij+1;
    }
    cout<<corect;

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