Submission #147864

#TimeUsernameProblemLanguageResultExecution timeMemory
147864willi19Friend (IOI14_friend)C++14
8 / 100
3 ms504 KiB
#include <cstdio>
#include <cassert>
#define __MAXSIZE__ 100002
#include "friend.h"
#include<bits/stdc++.h>
using namespace std;
set<int,greater<int> > s;
int ans[100100];
int findSample(int n,int confidence[],int host[],int protocol[]){
    int ret=0;
    s.insert(confidence[0]);
    for(int i=1;i<n;i++)
    {
        if(protocol[i]==0)
        {
            if(s.find(confidence[host[i]])==s.begin())
            {
                if(s.size()==1)
                    continue;
                else
                {
                    set<int> ::iterator it=s.begin();
                    it++;
                    ans[i]=*it;
                }
            }
            else
                ans[i]=*(s.begin());
        }
        if(protocol[i]==1)
            ans[i]=max(confidence[host[i]],ans[host[i]]);
        if(protocol[i]==2)
            ans[i]=ans[host[i]];
        s.insert(confidence[i]);
        ret=max(ret,confidence[i]+ans[i]);
        //cout<<i<<" "<<ans[i]<<"\n";
    }
    return ret;
}
#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...