Submission #879059

#TimeUsernameProblemLanguageResultExecution timeMemory
879059Elvin_FritlHedgehog Daniyar and Algorithms (IZhO19_sortbooks)C++17
17 / 100
3045 ms15216 KiB
#include <bits/stdc++.h>
using namespace std;
 
#define io                      \
    ios_base::sync_with_stdio(0); \
    cin.tie(0);                   \
    cout.tie(0);

 
typedef long long ll;
 
ll bp(ll n,ll m){
    if(m == 0){
        return 1;
    }
    if(m == 1){
        return n;
    }
    if(m%2==0){
        return bp(n*n,m/2);
    }
    return n*bp(n,m-1);
}

 
const int N =  1020, M = 33, inf = 1e9 + 99;
const ll inff = 1e12;

 
 void solve() {
	int n, q;
    cin >> n >> q;
    vector<int> v(n);
    for(int i=0;i<n;i++) {
		cin >> v[i];
	}
	map<pair<int,int>,int> m1 , m2;
    while(q--) {
        int l, r, k;
        cin >> l >> r >> k;
        if(m1[{l,r}] != 0 && (int)m1[{l,r}] <= k) {
			cout << 1 << endl;
			continue;
		}
		if(m2[{l,r}] >= k && m2[{l,r}] > 0) {
			cout << 0 << endl;
			continue;
		}
		
        int mx = v[l - 1], res = 0,ans = 1;
        for(int i=l;i<r;i++) {
            if(mx > v[i]) {
                res = max(res, mx + v[i]);
            }
            mx = max(mx, v[i]);
            if(res > k) {
				ans = 0;
			}
        }
        if(ans == 0) {
			m2[{l,r}] = k;
		}
		else{
			m1[{l,r}] = k;
		}
        
        cout << ans << '\n';
    }
}
 
int main()
{
	io;
	
	int t = 1;
	///  cin >> t;
	while(t--) {
		solve();
	}
    
    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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...