Submission #1139449

#TimeUsernameProblemLanguageResultExecution timeMemory
1139449simplemind_31Triumphal arch (POI13_luk)C++20
100 / 100
292 ms22520 KiB
#include <bits/stdc++.h>
using namespace std;
int n,a,b;
vector<vector<int>> graph;
int dfs(int now,int ante,int cant){
    int res=cant;
    for(auto u:graph[now]){
        if(u==ante){
            continue;
        }
        res+=dfs(u,now,cant)-1;
    }
    return min(0,res);
}
int main(){
    scanf("%d",&n);
    graph.resize(n);
    for(int i=1;i<n;i++){
        scanf("%d%d",&a,&b);
        graph[--a].push_back(--b);
        graph[b].push_back(a);
    }
    int l=0,r=3e5;
    while(l<r){
        int mid=(l+r)>>1;
        if(dfs(0,-1,mid)>=0){
            r=mid;
        }else{
            l=mid+1;
        }
    }
    printf("%d",l);
}

Compilation message (stderr)

luk.cpp: In function 'int main()':
luk.cpp:16:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   16 |     scanf("%d",&n);
      |     ~~~~~^~~~~~~~~
luk.cpp:19:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   19 |         scanf("%d%d",&a,&b);
      |         ~~~~~^~~~~~~~~~~~~~
#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...