Submission #1363595

#TimeUsernameProblemLanguageResultExecution timeMemory
1363595biserailievaGuessing Game (EGOI23_guessinggame)C++20
0 / 100
422 ms5552 KiB
#include <bits/stdc++.h>
using namespace std;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int P, N;
    cin>>P>>N;
    int fali=-1;
    map<int, int>start;
    if(P==1)
    {
        cout<<(N+1)/2<<endl; 
        for(int i=0;i<N-1;i++)
        {
            int idx;
            cin>>idx; 
            if(i<(N+1)/2)
            {
                start[i+1]++;
                if(start[i+1]==1)
                {
                    fali=i+1;
                }
                else if(start[fali]==2)
                {
                    fali=-1;
                }
                cout<<i+1<<endl;
            }
            else
            {
                start[i-(N+1)/2+1]++;
                if(start[i-(N+1)/2+1]==1)
                {
                    fali=i-(N+1)/2+1;
                }
                else if(start[fali]==2)
                {
                    fali=-1;
                }
                cout<<i-(N+1)/2+1<<endl;
            }
        }
    }
    else
    {
        vector<int>A(N);
        map<int, int>freq;
        int i1=-1, i2=-1;
        map<int, int>tri;
        bool ima=false;
        for(int i=0;i<N;i++)
        {
            cin>>A[i];
            tri[A[i]]++;
            if(tri[A[i]]==3)
            {
                ima=true;
            }
        }
        if(ima)
        {
            for(int i=0;i<(N+1)/2;i++)
            {
                freq[A[i]]++;
                if(freq[A[i]]==2)
                {
                    i1=i;
                    for(int j=0;j<(N+1)/2;j++)
                    {
                        if(A[j]==A[i])
                        {
                            i2=j;
                            cout<<i2<<' '<<i1<<endl;
                            return 0;
                        }
                    }
                }
            }
            map<int, int>freq2;
            for(int i=(N+1)/2;i<=N-1;i++)
            {
                freq2[A[i]]++;
                if(freq2[A[i]]==2)
                {
                    i1=i;
                    for(int j=(N+1)/2;j<=N-1;j++)
                    {
                        if(A[j]==A[i])
                        {
                            i2=j;
                            cout<<i2<<' '<<i1<<endl;
                            return 0;
                        }
                    }
                }
            }
        }
        else
        {
            for(int i=0;i<N;i++)
            {
                if(A[i]==fali)
                {
                    cout<<i<<' ';
                }
            }
        }
    }
    return 0;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...