제출 #1332335

#제출 시각아이디문제언어결과실행 시간메모리
1332335KALARRYJobs (BOI24_jobs)C++20
11 / 100
96 ms34120 KiB
//chockolateman

#include<bits/stdc++.h>

using namespace std;

const long long INF = 1000000000000000000ll;

long long N,a[300005],par[300005],dp[300005];
long long S,ans;
vector<long long> adj[300005];

void dfs(long long v,long long p)
{
    dp[v] = a[v];
    for(auto u : adj[v])
    {
        if(u != p)
        {
            dfs(u,v);
            dp[v] += dp[u];
        }
    }   
    if(dp[v] < 0)
        dp[v] = 0;
}

int main()
{
    scanf("%lld%lld",&N,&S);
    for(long long p,i = 1 ; i <= N ; i++)
    {
        scanf("%lld%lld",&a[i],&p);
        par[i] = p;
        assert(p < i);
        if(p==0)
        {
            par[i] = i;
        }
        else
        {
            adj[p].push_back(i);
            adj[i].push_back(p);
        }
    }
    for(long long i = 1 ; i <= N ; i++)
        if(par[i]==i)
        {
            dfs(i,i);
            ans += dp[i];
        }
    printf("%lld\n",ans);
    return 0;
}

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

Main.cpp: In function 'int main()':
Main.cpp:30:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   30 |     scanf("%lld%lld",&N,&S);
      |     ~~~~~^~~~~~~~~~~~~~~~~~
Main.cpp:33:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   33 |         scanf("%lld%lld",&a[i],&p);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~
#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...