Submission #709061

#TimeUsernameProblemLanguageResultExecution timeMemory
709061vjudge1Abracadabra (CEOI22_abracadabra)C++17
10 / 100
1931 ms15440 KiB
#include<bits/stdc++.h>

#define pb push_back
#define nl "\n"

using namespace std;

const int N = (int)2e5 + 7;
const int inf = (int)1e9 + 7;

int n, q, a[N];
int b[1001][1001];

int main() {
	ios_base::sync_with_stdio(NULL);
	cin.tie(0);
	cin >> n >> q;
	for(int i = 1; i <= n; ++i) {
		cin >> a[i];
		b[0][i] = a[i];	
	}
	for(int x = 1; x <= n; ++x) {
		vector<int> l, r, v;
		for(int i = 1; i <= n / 2; ++i) l.pb(b[x - 1][i]);
		for(int i = n / 2 + 1; i <= n; ++i) r.pb(b[x - 1][i]);
		int i1 = 0, i2 = 0;
		for(int i = 1; i <= n; ++i) {
			if(i1 < n / 2 && i2 < n / 2) {
				if(l[i1] < r[i2]) v.pb(l[i1++]);
				else v.pb(r[i2++]);			
			}
			if(i1 == n / 2) {
				v.pb(r[i2++]);
				continue;
			}
			if(i2 == n / 2) {
				v.pb(l[i1++]);
				continue;
			}
		}
		for(int i = 1; i <= n; ++i) b[x][i] = v[i - 1];
	}
	while(q--) {
		int i, x;
		cin >> x >> i;
		cout << b[min(n, x)][i] << nl;		
	}
	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...