제출 #77246

#제출 시각아이디문제언어결과실행 시간메모리
77246farukkastamonudaUntitled (POI11_dyn)C++14
100 / 100
1713 ms30468 KiB
#include <bits/stdc++.h>
#define li 300005
#define mid (bas+son)/2
using namespace std;
int n, m, ans, A[li], x, y, say;
vector<int> vv[li];
int solve(int node, int ata, int sayi){
    int t = 0,v = 0;
    for(int i = 0;i < (int)vv[node].size();i++){
        int go = vv[node][i];
        if(ata == go) continue;
        int u = solve(go,node,sayi);
        if(u == 0) continue;
        if(u > 0) v = max(v,u);
        else t = min(t,u);
    }
    if(abs(t) >= sayi){
        ans++;
        return sayi;
    }
    if(t == 0 && v == 0) return -A[node];
    if(v > abs(t)) return v - 1;
    return t - 1;
}
int can(int k){
    ans = 0;
    if(solve(1,0,k) < 0) ans++;
    if(ans <= m) return 1;
    return 0;
}
int main(){
    scanf("%d %d",&n,&m);
    for(int i=1;i <= n;i++) {scanf("%d",&A[i]);say+=A[i];}
    for(int i=1;i < n;i++){
        scanf("%d %d",&x,&y);
        vv[x].push_back(y);
        vv[y].push_back(x);
    }
    if(say <= m){
        printf("0\n");
        return 0;
    }
    int bas = 1,son = n;
    while(bas <= son){
        if(can(mid) == 1) son = mid - 1;
        else bas = mid + 1;
    }
    printf("%d\n",bas);
    return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

dyn.cpp: In function 'int main()':
dyn.cpp:32:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d %d",&n,&m);
     ~~~~~^~~~~~~~~~~~~~~
dyn.cpp:33:35: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     for(int i=1;i <= n;i++) {scanf("%d",&A[i]);say+=A[i];}
                              ~~~~~^~~~~~~~~~~~
dyn.cpp:35:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d %d",&x,&y);
         ~~~~~^~~~~~~~~~~~~~~
#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...