Submission #73596

# Submission time Handle Problem Language Result Execution time Memory
73596 2018-08-28T13:36:35 Z MKopchev Friend (IOI14_friend) C++14
35 / 100
5 ms 924 KB
#include<bits/stdc++.h>
#include "friend.h"
using namespace std;
const int nmax=1e3+42;
vector<int> adj[nmax];
int conf[nmax];
int dp[nmax][2];
int rec(int node,int par,bool take)
{
    if(dp[node][take]!=-1)return dp[node][take];
    int ans=(take?conf[node]:0);
    if(take)
    {
        for(auto k:adj[node])
            if(k!=par)
            ans=ans+rec(k,node,0);
    }
    else
    {
        for(auto k:adj[node])
            if(k!=par)
            ans=ans+max(rec(k,node,0),rec(k,node,1));
    }
    dp[node][take]=ans;
    return ans;
}
int findSample(int n,int confidence[],int host[],int protocol[])
{
    int sum=confidence[0],maxi=confidence[0];
    bool zero=1,one=1,two=1;
    for(int i=1;i<n;i++)
    {
        if(protocol[i]!=0)zero=0;
        if(protocol[i]!=1)one=0;
        if(protocol[i]!=2)two=0;
        sum=sum+confidence[i];
        maxi=max(maxi,confidence[i]);
    }
    if(one)return sum;
    if(two)return maxi;
    if(zero)
    {
        for(int i=0;i<n;i++)
            conf[i]=confidence[i];
        for(int i=1;i<n;i++)
        {
            adj[host[i]].push_back(i);
            adj[i].push_back(host[i]);
        }
        memset(dp,-1,sizeof(dp));
        return max(rec(0,0,0),rec(0,0,1));
    }
    return -1;
}
# Verdict Execution time Memory Grader output
1 Correct 3 ms 376 KB Output is correct
2 Correct 2 ms 484 KB Output is correct
3 Correct 2 ms 564 KB Output is correct
4 Correct 2 ms 564 KB Output is correct
5 Correct 3 ms 600 KB Output is correct
6 Correct 2 ms 600 KB Output is correct
7 Incorrect 2 ms 600 KB Output isn't correct
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 600 KB Output is correct
2 Correct 3 ms 600 KB Output is correct
3 Correct 3 ms 640 KB Output is correct
4 Correct 4 ms 640 KB Output is correct
5 Correct 3 ms 720 KB Output is correct
6 Correct 4 ms 720 KB Output is correct
7 Correct 3 ms 720 KB Output is correct
8 Correct 3 ms 720 KB Output is correct
9 Correct 3 ms 720 KB Output is correct
10 Correct 2 ms 720 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 720 KB Output is correct
2 Correct 3 ms 720 KB Output is correct
3 Correct 2 ms 720 KB Output is correct
4 Correct 3 ms 720 KB Output is correct
5 Correct 4 ms 720 KB Output is correct
6 Correct 3 ms 720 KB Output is correct
7 Correct 2 ms 720 KB Output is correct
8 Correct 3 ms 720 KB Output is correct
9 Correct 3 ms 720 KB Output is correct
10 Correct 3 ms 720 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3 ms 720 KB Output is correct
2 Correct 2 ms 720 KB Output is correct
3 Correct 3 ms 720 KB Output is correct
4 Correct 3 ms 720 KB Output is correct
5 Correct 3 ms 920 KB Output is correct
6 Correct 3 ms 920 KB Output is correct
7 Correct 3 ms 920 KB Output is correct
8 Correct 4 ms 920 KB Output is correct
9 Correct 4 ms 920 KB Output is correct
10 Correct 3 ms 920 KB Output is correct
11 Correct 4 ms 920 KB Output is correct
12 Correct 5 ms 920 KB Output is correct
13 Correct 3 ms 920 KB Output is correct
14 Correct 3 ms 920 KB Output is correct
15 Correct 5 ms 920 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3 ms 920 KB Output is correct
2 Correct 2 ms 920 KB Output is correct
3 Correct 3 ms 920 KB Output is correct
4 Correct 4 ms 924 KB Output is correct
5 Incorrect 3 ms 924 KB Output isn't correct
6 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 3 ms 924 KB Output is correct
2 Correct 3 ms 924 KB Output is correct
3 Incorrect 3 ms 924 KB Output isn't correct
4 Halted 0 ms 0 KB -