제출 #77242

#제출 시각아이디문제언어결과실행 시간메모리
77242farukkastamonuda무제 (POI11_dyn)C++14
0 / 100
1765 ms27256 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<=k) 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=0,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:33: 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...