Submission #1015405

#TimeUsernameProblemLanguageResultExecution timeMemory
1015405amirhoseinfar1385친구 (IOI14_friend)C++17
19 / 100
2 ms12940 KiB
#include "friend.h" #include<bits/stdc++.h> using namespace std; const int maxn=100000+10; struct node{ int w,vas,did; node(){ w=vas=did=0; } set<int>adj,revadj; }; node alln[maxn]; int nem[maxn],miad[maxn],jam[maxn],te=0; void dorost(int v,int w){ nem[v]=te; miad[v]=te+1; jam[v]=te+2; alln[miad[v]].w=w; alln[jam[v]].adj.insert(nem[v]); alln[jam[v]].adj.insert(miad[v]); alln[jam[v]].vas=1; te+=3; } void comp(int v,int u,int val,int no){ if(no==0){ dorost(v,val); alln[miad[u]].adj.insert(nem[v]); alln[nem[u]].adj.insert(jam[v]); }else if(no==1){ }else{ } } void calc(int u){ if(alln[u].did==1){ return ; } alln[u].did=1; if(alln[u].vas==1){ for(auto x:alln[u].adj){ calc(x); alln[u].w=max(alln[u].w,alln[x].w); } }else{ for(auto x:alln[u].adj){ calc(x); alln[u].w+=alln[x].w; } } // cout<<u<<" "<<alln[u].w<<endl; } int findSample(int n,int confidence[],int host[],int protocol[]){ dorost(0,confidence[0]); for(int i=1;i<n;i++){ // cout<<"wtf: "<<i<<" "<<host[i]<<endl; comp(i,host[i],confidence[i],protocol[i]); } // for(int i=0;i<n;i++){ // cout<<miad[i]<<" "<<nem[i]<<" "<<jam[i]<<endl; // } calc(jam[0]); return alln[jam[0]].w; }
#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...