제출 #887330

#제출 시각아이디문제언어결과실행 시간메모리
887330votranngocvyHedgehog Daniyar and Algorithms (IZhO19_sortbooks)C++14
17 / 100
925 ms60228 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define pii pair<int,int> #define piii pair<pii,int> #define fi first #define se second #define mp make_pair const int N = 1e6 + 5; int a[N],n,m; piii queries[N]; namespace sub1 { int b[N]; void solve() { for (int i = 1; i <= m; i++) { for (int j = 1; j <= n; j++) b[j] = a[j]; int l = queries[i].fi.fi,r = queries[i].fi.se,k = queries[i].se; bool check = true; for (int j = l; j < r; j++) if (b[j] > b[j + 1]) { check = false; break; } while (!check) { bool found = false; for (int j = l; j < r; j++) if (b[j] > b[j + 1]) { if (b[j] + b[j + 1] <= k) swap(b[j],b[j + 1]); else found = true; break; } if (found) break; check = true; for (int j = l; j < r; j++) if (b[j] > b[j + 1]) { check = false; break; } } cout << check << "\n"; } } } namespace sub2 { void solve() { for (int i = 1; i <= m; i++) { int l = queries[i].fi.fi,r = queries[i].fi.se,k = queries[i].se; set<int>s; bool check = true; for (int j = r; j >= l; j--) { auto it = s.lower_bound(a[j]); if (it != s.begin()) { it--; if ((*it) + a[j] > k) { check = false; break; } } s.insert(a[j]); } cout << check << "\n"; } } } namespace sub3 { bool check_condition() { int Min = 1e9 + 7; for (int i = 1; i <= n; i++) Min = min(Min,a[i]); for (int i = 1; i <= m; i++) if (queries[i].se > Min) return false; return true; } void solve() { for (int i = 1; i <= m; i++) cout << 0 << "\n"; } } signed main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> m; for (int i = 1; i <= n; i++) cin >> a[i]; for (int i = 1; i <= m; i++) cin >> queries[i].fi.fi >> queries[i].fi.se >> queries[i].se; if (n <= 500 && m <= 500) sub1::solve(); else if (n <= 5000 && m <= 5000) sub2::solve(); else if (sub3::check_condition()) sub3::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...