제출 #1040322

#제출 시각아이디문제언어결과실행 시간메모리
1040322vjudge1Hedgehog Daniyar and Algorithms (IZhO19_sortbooks)C++17
30 / 100
581 ms47440 KiB
#include<bits/stdc++.h> #define INF 1e18 #define fi first #define se second #define FOR(i, k, n) for(ll i = k; i <= n; i++) #define FOR1(i, k, n) for(ll i = k; i >= n; i--) #define pb push_back #define fastio ios::sync_with_stdio(0); cin.tie(0); cout.tie(0) #define vi vector<int> #define pii pair<int, int> #define vii vector<pii> #define ll long long #define vll vector<ll> #define pll pair<ll, ll> #define re return 0 #define mii map<int, int> #define input "BAI1.inp" #define output "BAI1.out" #define rf freopen(input, "r", stdin); freopen(output, "w", stdout) using namespace std; const int maxn = 1e6 + 5; const int mod = 1e9 + 7; int a[maxn]; int T[maxn * 4]; void update(int id, int l, int r, int pos, int val) { if(l == r) { T[id] = val; return; } int mid = (l + r) >> 1; if(pos <= mid) update(id * 2, l, mid, pos, val); else update(id * 2 + 1, mid + 1, r, pos, val); T[id] = max(T[id * 2], T[id * 2 + 1]); } int get(int id, int l, int r, int u, int v) { if(l > v || r < u) return 0; if(l >= u && r <= v) return T[id]; int mid = (l + r) >> 1; return max(get(id * 2, l, mid, u, v), get(id * 2 + 1, mid + 1, r, u, v)); } int main() { fastio; int n, m; cin >> n >> m; FOR(i, 1, n) cin >> a[i]; if(n <= 5000 && m <= 5000) { while(m--) { int l, r, x; cin >> l >> r >> x; int ans = 0; int maxx = a[l]; FOR(i, l + 1, r) { if(a[i] < maxx) ans = max(ans, maxx + a[i]); else maxx = a[i]; } cout << (ans <= x) << "\n"; } re; } stack<int> st; st.push(0); a[0] = 1e9 + 5; FOR(i, 1, n) { while(a[st.top()] <= a[i]) st.pop(); update(1, 1, n, i, st.top()); st.push(i); } while(m--) { int l, r, x; cin >> l >> r >> x; int res = get(1, 1, n, l, r); if(res >= l) cout << "0\n"; else cout << "1\n"; } re; }
#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...