| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1332335 | KALARRY | Jobs (BOI24_jobs) | C++20 | 96 ms | 34120 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) 메시지
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
