3988 2023. 03. 07 16:40:26 eokor Tevefarm cpp11 Hibás válasz 6/50 81ms 5424 KiB
#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