제출 #1345213

#제출 시각아이디문제언어결과실행 시간메모리
1345213WarinchaiAbracadabra (CEOI22_abracadabra)C++20
0 / 100
3092 ms14416 KiB
#include<bits/stdc++.h>
using namespace std;

int ar[200005];
vector<pair<int,int>>qr[200005];
int ans[200005];

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int n,q;cin>>n>>q;
    vector<int>v;
    for(int i=1;i<=n;i++)cin>>ar[i],v.push_back(ar[i]);
    for(int i=0;i<q;i++){
        int a,b;cin>>a>>b;
        a=min(a,n);
        qr[a].push_back({b,i});
    }
    for(auto [a,id]:qr[0]){
        ans[id]=v[a-1];
    }
    //for(auto x:v)cerr<<x<<" ";
    //cerr<<"\n";
    for(int i=1;i<=n;i++){
        vector<int>temp;
        int l=0,r=n/2;
        while(l<n/2||r<n){
            if(l==(n/2))temp.push_back(v[r]),r++;
            else if(r==n)temp.push_back(v[l]),l++;
            else if(v[l]<v[r])temp.push_back(v[l]),l++;
            else temp.push_back(v[r]),r++;
        }
        v=temp;
        for(auto [a,id]:qr[i]){
            ans[id]=v[a-1];
        }
        //for(auto x:v)cerr<<x<<" ";
        //cerr<<"\n";
    }
    for(int i=0;i<q;i++)cout<<ans[i]<<"\n";
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...