This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
#define pb push_back
#define int long long
#define vi vector<int>
#define vvi vector<vector<int>>
#define vll vector<long long int>
#define vvll vector<vector<long long int>>
#define pii pair<int, int>
#define vpii vector<pair<int, int>>
#define vc vector<char>
#define vvc vector<vector<char>>
#define vb vector<bool>
#define mii map<int,int>
#define mll map<long long int, long long int>
#define mivi map<int,vector<int>>
#define f0r(i,n) for(int i=0;i<n;i++)
#define FOR(i,k,n) for(int i=k;i<n;i++)
using namespace std;
signed main(){
ios::sync_with_stdio(false);
cin.tie(NULL);
//ifstream cin(".in");
//ofstream cout(".out");
int n,q;
cin>>n>>q;
vi v(n);
f0r(i,n)cin>>v[i];
//f0r(i,n)cout<<v[i]<<' ';
//cout<<'\n';
vector<vi>ans;
ans.pb(v);
f0r(i,n){
vi v1;
vi v2;
f0r(j, n/2)v1.pb(v[j]);
f0r(j,n/2)v2.pb(v[j+n/2]);
int p1 = 0;
int p2 = 0;
vi a;
while(p1 < n/2 || p2 < n/2){
if(p1 == n/2){
a.pb(v2[p2]);
p2++;
}
else if(p2 == n/2){
a.pb(v1[p1]);
p1++;
}
else{
if(v1[p1] < v2[p2]){
a.pb(v1[p1]);
p1++;
}
else{
a.pb(v2[p2]);
p2++;
}
}
}
f0r(i,n)v[i] = a[i];
/*
f0r(i,n)cout<<v[i]<<' ';
cout<<'\n';
*/
ans.pb(v);
}
f0r(i,q){
int t,x;
cin>>t>>x;
x--;
if(t <= n)cout<<ans[t][x]<<'\n';
else cout<<ans[n][x]<<'\n';
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |