This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#pragma GCC optimize("O3")
#include "friend.h"
#include<bits/stdc++.h>
#define rc(x) return cout<<x<<endl,0
#define pb push_back
#define in insert
#define er erase
#define fd find
#define fr first
#define sc second
typedef long long ll;
typedef long double ld;
const ll INF=0x3f3f3f3f3f3f3f3f;
const ll llinf=(1LL<<62);
const int inf=(1<<30);
const int nmax=1e5+50;
const int mod=1e9+7;
using namespace std;
int f[nmax],g[nmax];
int findSample(int n,int c[],int host[],int pr[])
{
int h,i;
for(i=0;i<n;i++)f[i]=c[i];
for(i=n-1;i>0;i--)
{
h=host[i];
if(pr[i]==0)
{
f[h]=max(f[h]+g[i],f[i]+g[h]);
g[h]=max(g[i]+g[h],f[i]+g[h]);
}
else if(pr[i]==2)
{
f[h]=max(f[h]+g[i],f[i]+g[h]);
g[h]+=g[i];
}
else
{
f[h]=max(max(f[h]+g[i],f[i]+g[h]),f[h]+f[i]);
g[h]+=g[i];
}
}
return max(g[0],f[0]);
}
/*int main()
{
//freopen("sol.in","r",stdin);
//freopen("sol.out","w",stdout);
ios_base::sync_with_stdio(false);cin.tie(0);cerr.tie(0);cout.tie(0);
return 0;
}*/
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |