제출 #1156382

#제출 시각아이디문제언어결과실행 시간메모리
1156382AbdullahIshfaqHedgehog Daniyar and Algorithms (IZhO19_sortbooks)C++20
34 / 100
499 ms62248 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define MOD 1000000007 const int N = 100001; ll fen[N], n; void update(ll i , ll x){ for( ; i >= 1 ; i -= i & -i){ fen[i] = max(fen[i] , x); } } ll query(ll i){ ll mx = 0; for( ; i <= n ;i += i & -i){ mx = max(mx , fen[i]); } return mx; } void solve(){ ll m, l , r, c; cin >> n >> m; ll a[n + 1]; vector<tuple<int, int, int>> q[n + 1]; ll ans[m + 1]; stack<int> s; s.push(0); a[0] = 2e9 + 5; for(int i = 1; i <= n; i ++){ cin >> a[i]; } for(int i = 1; i <= m; i ++){ cin >> l >> r >> c; q[r].push_back({l, c, i}); } for(int i = 1; i <= n; i ++){ while(a[s.top()] <= a[i]){ s.pop(); } if(s.top()){ update(s.top(), a[s.top()] + a[i]); } s.push(i); for(auto [l, r, c] : q[i]){ ans[c] = query(l) <= r; } } for(int i = 1 ; i <= m; i++){ cout << ans[i] << '\n'; } cout << '\n'; } int main() { ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); int tests = 1; // cin >> tests; for(int i = 1; i <= tests; i ++){ solve(); } }
#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...