Submission #1036795

#TimeUsernameProblemLanguageResultExecution timeMemory
1036795vjudge1Abracadabra (CEOI22_abracadabra)C++17
10 / 100
3071 ms35288 KiB
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define x first
#define y second
int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    ll n,t;
    cin>>n>>t;
    vector<ll> cad(n);
    for(int i=0; i<n; i++)
        cin>>cad[i];
    vector<ll> fin=cad; sort(fin.begin(),fin.end());
    priority_queue<pair<ll,ll>> q;
    vector<ll> query(t,0);
    for(int i=0; i<t; i++)
    {
        ll a,b;
        cin>>a>>b;
        query[i]=b;
        q.push({-a,i});
    }
    ll cnt=0;
    while(fin!=cad)
    {
        while(!q.empty()&&-cnt==q.top().first)
        {
            query[q.top().second]=cad[query[q.top().second]-1];
            q.pop();
        }
        if(q.empty()) break;
        fin=cad;
        vector<ll> temp;
        ll i=0;
        ll d=n/2;
        while(i!=n/2||d!=n)
        {
            if(i==n/2)
            {
                while(d<n)
                {
                    temp.push_back(cad[d]);
                    d++;
                }
            }
            else if(d==n)
            {
                while(i<n/2)
                {
                    temp.push_back(cad[i]);
                    i++;
                }
            }
            else if(cad[i]<cad[d])
                temp.push_back(cad[i++]);
            else temp.push_back(cad[d++]);
        }
        cad=temp;
        cnt++;
    }
    while(!q.empty())
    {
        query[q.top().second]=cad[query[q.top().second]-1];
        q.pop();
    }
    for(auto i:query)
        cout<<i<<"\n";
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...