Submission #1269010

#TimeUsernameProblemLanguageResultExecution timeMemory
1269010nikolashamiFriend (IOI14_friend)C++20
0 / 100
0 ms328 KiB
#include<bits/stdc++.h> #include"friend.h" using namespace std; using ll=long long; #define __MAXSIZE__ 100002 const ll N=1e5+7; ll a[N],hst[N],tp[N],_n; int findSample(int __n,int confidence[],int host[],int protocol[]){ _n=__n; for(int i=0;i<_n;++i){ a[1+i]=confidence[i]; if(i)hst[1+i]=host[i]+1; if(i)tp[1+i]=protocol[i]; } ll ans=0; for(int i=_n;i>=1;--i){ ll u=i,v=hst[i]; if(tp[i]==1)a[v]+=a[u]; else if(tp[i]==2)a[v]=max(a[v],a[u]); else{ ans+=a[u]; a[v]=max(0ll,a[v]-a[u]); } } return ans+a[1]; } /* // Confidence int confidence[__MAXSIZE__]; // Host int host[__MAXSIZE__]; // Protocol int protocol[__MAXSIZE__]; // Main int main(void) { int n,i; // Number of people assert(scanf("%d",&n)==1); // Confidence for(i=0;i<n;i++) assert(scanf("%d",&confidence[i])==1); // Host and Protocol for(i=1;i<n;i++) assert(scanf("%d %d",&host[i],&protocol[i])==2); // Answer printf("%d\n",findSample(n,confidence,host,protocol)); return 0; } */
#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...