151472025-02-14 08:58:19ercseferencTevefarmcpp11Hibás válasz 2/50101ms5656 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;
    for(int i=0; i<l1.size(); i++){cout<<l1[i]<<" ";}
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base2/50
1Hibás válasz0/01ms316 KiB
2Hibás válasz0/02ms316 KiB
3Hibás válasz0/41ms316 KiB
4Hibás válasz0/41ms508 KiB
5Részben helyes2/41ms316 KiB
6Hibás válasz0/42ms316 KiB
7Hibás válasz0/441ms3004 KiB
8Hibás válasz0/650ms3564 KiB
9Hibás válasz0/661ms4148 KiB
10Hibás válasz0/670ms4804 KiB
11Hibás válasz0/690ms5160 KiB
12Hibás válasz0/6101ms5656 KiB