This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
int N,*C,*H,*P;
vector <int> sol[100000];
bool visited[100000];
void connect(int a,int b)
{
    sol[a].push_back(b);
    sol[b].push_back(a); 
}
void prijatelstva()
{
    int i;
    for (i=1; i<N; i++)
    {
        if(P[i]==0) 
        {
            connect(H[i], i);
        }
        if(P[i]==1) 
        {
            for(int j=sol[H[i]].size(); j>0; j--)
                connect(sol[H[i]][j], i);
        }
        if(P[i]==2) 
        {
            for(int j=sol[H[i]].size(); j>0; j--)
                connect(sol[H[i]][j], i);
            connect(H[i], i);
        }
    }
}
int dfs(int x, int value)
{
    int i, rez=0;
    if(x==N)    //end
        return value;
    for (i=sol[x].size(); i--;)
    {
        if(visited[sol[x][i]]) 
            break;
    }
    if(i<0)
    {
        visited[x]=1;
        rez=dfs(x+1, value+C[x]);
    }
    visited[x]=0;
    int y=dfs(x+1, value);
    if(rez<y) 
        rez=y;
    return rez;
}
int subtask1()
{
    prijatelstva();
    return dfs(0, 0);
}
int subtask2()
{
    int zbir=0;
    for (int i=0; i<N; i++) 
        zbir+=C[i];
    return zbir;
}
int subtask3()
{
    int maxx=-1;
    for (int i=0; i<N; i++)
    {
        if(C[i]>maxx) 
            maxx=C[i];
    }
    return maxx;
}
int findSample(int n, int confidence[], int host[], int protocol[])
{
    int i;
    N=n;
    C=confidence;
    H=host; 
    P=protocol;
    if (N<=10) 
        return subtask1();
    for(i=2; i<N; i++) 
        if(protocol[i-1]!=protocol[i]) 
            break;
    if(i>=N)
    {
        if(protocol[1]==1)
        {
            return subtask2();
        }
        if(protocol[1]==2)
            return subtask3();
    }
    
    return 0;
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |