151482025-02-14 08:59:49ercseferencTevefarmcpp11Hibás válasz 4/50104ms5820 KiB
#include <bits/stdc++.h>
using namespace std;
struct va{vector<int>kim; int ert; bool val=0;};
int main()
{
    ifstream f("szamok.txt");
    int n,x; cin>>n;  vector<va>a(n+1);
    for(int i=1; i<=n; i++){cin>>a[i].ert;}
    for(int i=2; i<=n; i++){cin>>x; a[x].kim.push_back(i);}
    vector<int>l1,l2; l1.push_back(1); a[1].val=1; bool nincs=0;
    while(!nincs){
        for(int i=0; i<l1.size(); i++){
            int s=0;
            for(int j=0; j<a[l1[i]].kim.size(); j++)
                {s+=a[a[l1[i]].kim[j]].ert;
                l2.push_back(a[l1[i]].kim[j]);}
            if(s>a[l1[i]].ert){
                a[l1[i]].val=0;
                for(int j=0; j<a[l1[i]].kim.size(); j++)
                    a[a[l1[i]].kim[j]].val=1;}}
        if(l2.size()==0)nincs=1;
        l1=l2; l2.clear();}
    int s=0; l1.clear();
    for(int i=1; i<=n; i++){if(a[i].val){s+=a[i].ert; l1.push_back(i);}}
    cout<<s<<endl<<l1.size()<<endl;
    for(int i=0; i<l1.size(); i++){cout<<l1[i]<<" ";}
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base4/50
1Elfogadva0/01ms316 KiB
2Hibás válasz0/02ms316 KiB
3Hibás válasz0/41ms316 KiB
4Hibás válasz0/41ms316 KiB
5Elfogadva4/41ms316 KiB
6Hibás válasz0/42ms360 KiB
7Hibás válasz0/441ms3124 KiB
8Hibás válasz0/652ms3524 KiB
9Hibás válasz0/659ms4192 KiB
10Hibás válasz0/671ms4680 KiB
11Hibás válasz0/693ms5272 KiB
12Hibás válasz0/6104ms5820 KiB