Submission #969609

#TimeUsernameProblemLanguageResultExecution timeMemory
9696098pete8Friend (IOI14_friend)C++17
100 / 100
21 ms4188 KiB
#include<iostream> #include<stack> #include<map> #include<vector> #include<string> #include<unordered_map> #include <queue> #include<cstring> #include<limits.h> #include <cassert> #include<cmath> #include<set> #include<algorithm> #include <iomanip> #include<numeric> //gcd(a,b) #include<bitset> #include <cstdlib> #include <cstdint> using namespace std; #define ll long long #define f first //#define endl "\n" #define s second #define pii pair<int,int> #define ppii pair<int,pii> #define vi vector<int> #define pb push_back #define all(x) x.begin(),x.end() #define rall(x) x.rbegin(),x.rend() #define F(n) for(int i=0;i<n;i++) #define lb lower_bound #define ub upper_bound #define fastio ios::sync_with_stdio(false);cin.tie(NULL); #pragma GCC optimize ("03,unroll-loops") using namespace std; //#define int long long //#define double long double const int mod=1e9+7,mxn=2e5+5,lg=60,inf=1e9,minf=-1e9,mx=3e4; int dp[mxn+10][2]; int findSample(int n, int confidence[], int host[], int protocol[]){ for(int i=0;i<n;i++)dp[i][1]=confidence[i];//take for(int i=n-1;i>=1;i--){ if(protocol[i]==0){ dp[host[i]][0]+=dp[i][1]; dp[host[i]][1]+=dp[i][0]; } else if(protocol[i]==1){//can take both parent and i dp[host[i]][1]+=dp[i][1]; dp[host[i]][0]+=dp[i][0];//same friend } else{ dp[host[i]][1]=max(dp[host[i]][1]+dp[i][0],dp[i][1]+dp[host[i]][0]); dp[host[i]][0]+=dp[i][0]; } dp[host[i]][1]=max(dp[host[i]][1],dp[host[i]][0]); //cout<<host[i]<<" "<<i<<" "<<dp[host[i]][0]<<" "<<dp[host[i]][1]<<'\n'; } return max(dp[0][0],dp[0][1]); }/* int32_t main(){ fastio int n;cin>>n; int x[n+1],y[n+1],z[n+1]; for(int i=0;i<n;i++)cin>>x[i]; for(int i=1;i<n;i++)cin>>y[i]>>z[i]; cout<<findSample(n,x,y,z); }*/
#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...