#include <bits/stdc++.h>
using namespace std;
vector < int > suly(1,-1);
vector < int > os(1,-1);
vector < bool > level (100001,true);
set <int> meg;
int main()
{
// ifstream cin("in.txt");
long long int n;
cin>>n;
int x;
for(int i=1;i<=n;i++)
{
cin>>x;
suly.push_back(x);
}
os.push_back(0);
for(int i=2;i<=n;i++)
{
cin>>x;
os.push_back(x);
level[x]=false;
}
int ert=0;
int ind;
for(int i=n;i>=2;i--)
{
ind=i;
while(level[ind] && os[i]==os[ind])
{
// cout<<os[ind]<<" ";
ert+=suly[ind];
// cout<<ind<<" ";
ind--;
}
if(ert>suly[os[i]])
{
suly[os[i]]=ert;
// cout<<ind<<" "<<suly[i]<<endl;
}
level[os[i]]=true;
// cout<<os[i]<<" "<<suly[os[i]]<<endl;
i=ind;
i++;
ert=0;
}
cout<<suly[1];
return 0;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 6/50 | ||||||
1 | Hibás válasz | 0/0 | 3ms | 1824 KiB | |||
2 | Hibás válasz | 0/0 | 3ms | 2196 KiB | |||
3 | Részben helyes | 2/4 | 3ms | 2312 KiB | |||
4 | Részben helyes | 2/4 | 3ms | 2528 KiB | |||
5 | Részben helyes | 2/4 | 3ms | 2680 KiB | |||
6 | Hibás válasz | 0/4 | 3ms | 2792 KiB | |||
7 | Hibás válasz | 0/4 | 32ms | 4112 KiB | |||
8 | Hibás válasz | 0/6 | 39ms | 4200 KiB | |||
9 | Hibás válasz | 0/6 | 45ms | 5020 KiB | |||
10 | Hibás válasz | 0/6 | 50ms | 5152 KiB | |||
11 | Hibás válasz | 0/6 | 74ms | 5344 KiB | |||
12 | Hibás válasz | 0/6 | 81ms | 5424 KiB |