제출 #1014683

#제출 시각아이디문제언어결과실행 시간메모리
1014683jcelinHedgehog Daniyar and Algorithms (IZhO19_sortbooks)C++14
100 / 100
833 ms98296 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int,int> ii; typedef pair<ll,ll> pll; typedef vector<int> vi; typedef vector<ii> vii; typedef vector<ll> vll; typedef vector<pll> vpll; #define PB push_back #define PF push_front #define PPB pop_back #define PPF pop_front #define X first #define Y second #define MP make_pair #define all(x) (x).begin(), (x).end() const int mod = 1e9 + 7; //998244353; const int inf = 1e9 + 7; const ll INF = 1e18 + 7; const int logo = 20; const int MAXN = 1e6 + 7; const int off = 1 << logo; const int trsz = off << 1; const int dx[] = {1, -1, 0, 0}; const int dy[] = {0, 0, -1, 1}; int arr[MAXN]; struct tournament{ int seg[trsz]; void update(int x, int vl){ x += off; seg[x] = max(seg[x], vl); for(x /= 2; x; x /= 2) seg[x] = max(seg[x], vl); } int query(int l, int r){ int ret = 0; for(l += off, r += off; l < r; l >>= 1, r >>= 1){ if(l & 1) ret = max(ret, seg[l++]); if(r & 1) ret = max(ret, seg[--r]); } return ret; } }t; vii st, qs[MAXN]; int ans[MAXN], lim[MAXN]; void solve(){ int n, m; cin >> n >> m; for(int i=1; i<=n; i++) cin >> arr[i]; st.PB({0, inf}); for(int i=0; i<m; i++){ int l, r; cin >> l >> r >> lim[i]; qs[r].PB({l, i}); } for(int i=1; i<=n; i++){ while(st.back().Y <= arr[i]) st.PPB(); t.update(st.back().X, st.back().Y + arr[i]); st.PB({i, arr[i]}); for(auto &x : qs[i]){ ans[x.Y] = (lim[x.Y] >= t.query(x.X, i + 1)); } } for(int i=0; i<m; i++) cout << ans[i] << "\n"; } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int tt = 1; //cin >> tt; while(tt--) 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...