Submission #1343860

#TimeUsernameProblemLanguageResultExecution timeMemory
1343860nicolo_010Hedgehog Daniyar and Algorithms (IZhO19_sortbooks)C++20
0 / 100
3093 ms37344 KiB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pii = pair<int, int>;

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	int n, m; cin >> n >> m;
	vector<int> a(n);
	for (int i=0; i<n; i++) {
		cin >> a[i];
	}
	while (m--) {
		int l, r, k; cin >> l >> r >> k;
		l--; r--;
		vector<int> b;
		for (int i=l; i<=r; i++) {
			b.push_back(a[i]);
		}
		vector<int> c = b;
		int idx=0, menor=b[0];
		int s = c.size();
		map<int, int> mp;
		mp[b[0]] = 0;
		for (int i=1; i<s; i++) {
			mp[b[i]] = i;
			if (b[i] < menor) {
				menor = b[i];
				idx = i;
			}
		}
		sort(c.begin(), c.end());
		bool can = true;
		for (int i=s-1; i>=0; i--) {
			int intended = c[i];
			int act = b[i];
			if (intended+act > k) {
				int menor = c[0];
				if (act+menor>k) {
					//No puedo ponerlo aca
					can = false;
					break;
				}
				else {
					swap(b[i], b[idx]);
					idx = i;
				}
			}
			swap(b[i], b[mp[c[i]]]);
		}
		cout << (can ? 1 : 0) << "\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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...