Submission #1018031

#TimeUsernameProblemLanguageResultExecution timeMemory
1018031hasan2006Friend (IOI14_friend)C++17
100 / 100
17 ms4236 KiB
#include <bits/stdc++.h>
//#include "friend.h"
using namespace std;

#define TL ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
#define rall(s) s.rbegin(),s.rend()
#define all(s) s.begin(),s.end()
#define pb push_back
#define se second
#define fi first
#define ll long long
#define ld long double
#define YES cout<<"YES\n"
#define Yes cout<<"Yes\n"
#define yes cout<<"yes\n"
#define NO cout<<"NO\n"
#define No cout<<"No\n"
#define no cout<<"no\n"


const int N = 5e5 + 9 , mod = 1e9 + 7;
ll a[N] , b[N] , dp[N] , c[N] , d[N] ;

int findSample(int n,int confidence[],int host[],int protocol[]){
    for(int i = 0; i < n; i++)
        d[i] = confidence[i];
    for(int i = n - 1; i > 0; i--){
        int x = host[i];
        if(protocol[i] == 0){
            d[x] += dp[i];
            dp[x] = max(dp[x]  +  d[i], dp[x] + dp[i]);
        }else if(protocol[i] == 1){
            d[x] = max({d[x] + d[i] ,d[x] + dp[i] , dp[x] + d[i]});
            dp[x] += dp[i];
        }else {
            d[x] = max(d[x] + dp[i], dp[x] + d[i]);
            dp[x] += dp[i];
        }
    }
    int ans = max(d[0] , dp[0]);
    return ans;
}
/*
int main(){
    TL;

    #ifndef ONLINE_JUDGE
        freopen("input.txt", "r", stdin);
        freopen("output.txt", "w", stdout);
    #endif
    int t = 1;
   // cin>>t;
    while(t--)
     {
        solve();
     }
}*/
// Author : حسن
#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...