Submission #1290136

#TimeUsernameProblemLanguageResultExecution timeMemory
1290136Jawad_Akbar_JJFriend (IOI14_friend)C++20
100 / 100
16 ms2200 KiB
#include <iostream> using namespace std; const int M = 1<<17; int p[M], q[M]; int findSample(int n, int cnf[], int hst[], int prt[]){ for (int i=1;i<=n;i++) p[i] = cnf[i - 1]; for (int i=n-1;i;i--){ int a = hst[i] + 1, b = i + 1; if (prt[i] == 0){ p[a] = p[a] + q[b]; q[a] = q[a] + max(p[b], q[b]); } else if (prt[i] == 1){ p[a] = max(p[a] + p[b], max(p[a] + q[b], p[b] + q[a])); q[a] = q[a] + q[b]; } else{ p[a] = max(p[a] + q[b], p[b] + q[a]); q[a] = q[b] + q[a]; } // cout<<a<<" "<<b<<" "<<p[a]<<" "<<q[a]<<endl; } return max(p[1], q[1]); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...