Submission #1145814

#TimeUsernameProblemLanguageResultExecution timeMemory
1145814txni128Easter Eggs (info1cup17_eastereggs)C++20
0 / 100
1 ms428 KiB
#include "grader.h"
#include <iostream>
#include <vector>
using namespace std;
int findEgg(int N, vector < pair < int, int > > bridges)
{
    int used[1024];
    fill(used,used+1000,0);
    /*for(auto c:bridges)
    {
        vector <int> k;
        k.push_back(c.first);
        k.push_back(c.second);
        if(used[k[0]]==0||used[k[1]]==0)
        {
            bool l=query(k);
            if(l==0)
            {
                used[c.first]=1;
                used[c.second]=1;
            }
        }
    }*/
    for(auto c:bridges)
    {
        vector <int> q;
        q.push_back(c.first);
        q.push_back(c.second);
        bool l=query(q);
        if(used[c.first]==1||used[c.second]==1)continue;
        if(l==1)
        {
            vector <int> q1,q2;
            q1.push_back(c.first);
            q2.push_back(c.second);
            l=query(q1);
            if(l)
            {
                return q1[0];
            }
            else return q2[0];
        }
        else
        {
            used[c.first]=1;
            used[c.second]=1;
        }
    }
    for(auto c:bridges)
    {
        bool l;
        if(used[c.first]==1&&used[c.second]==0)
        {
            vector<int>q;
            q.push_back(c.second);
            l=query(q);
            if(l)
            {
                return q[0];
            }
            else used[c.second]=1;
        }
        else if(used[c.first]==0&&used[c.second]==1)
        {
            vector<int>q;
            q.push_back(c.first);
            l=query(q);
            if(l)
            {
                return q[0];
            }
            else used[c.first]=1;
        }
    }
    for(auto c:bridges)
    {
        vector <int> q;
        q.push_back(c.first);
        q.push_back(c.second);
        bool l=query(q);
        if(used[c.first]==1||used[c.second]==1)continue;
        if(l==1)
        {
            vector <int> q1,q2;
            q1.push_back(c.first);
            q2.push_back(c.second);
            l=query(q1);
            if(l)
            {
                return q1[0];
            }
            else return q2[0];
        }
        else
        {
            used[c.first]=1;
            used[c.second]=1;
        }
    }

    for(int i=1;i<=N;i++)
    {
        if(used[i]==1)continue;
        vector <int> k;
        k.push_back(i);
        bool l=query(k);
        if(l)
        {
            return i;
        }
    }
    return 1;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...