# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
155996 | 2019-10-02T14:13:43 Z | ASDF123 | Hedgehog Daniyar and Algorithms (IZhO19_sortbooks) | C++14 | 3000 ms | 18488 KB |
#include <bits/stdc++.h> //#define int long long #define fr first #define sc second #define all(s) s.begin(), s.end() #define szof(s) (int)s.size() using namespace std; const int N = (int)1e6 + 5; const int INF = 1e9 + 7; const int MOD = (int)1e9 + 7; int tests = 1; int n, l, r, k; int a[N]; int tree[N * 4], pref[N]; void build(int v = 1, int tl = 1, int tr = N) { if (tl == tr) { tree[v] = a[tl]; return; } int mid = tl + tr >> 1; build(v + v, tl, mid); build(v + v + 1, mid + 1, tr); tree[v] = min(tree[v + v], tree[v + v + 1]); } int get(int l, int r, int v = 1, int tl = 1, int tr = N) { if (l <= tl && tr <= r) { return tree[v]; } if (l > tr || tl > r) { return INF; } int mid = tl + tr >> 1; return min(get(l, r, v + v, tl, mid), get(l, r, v + v + 1, mid + 1, tr)); } int bad(int l, int r) { return pref[r - 1] - pref[l - 1]; } void solve() { scanf("%d%d%d", &l, &r, &k); if (k < get(l, r)) { if (bad(l, r)) { puts("1"); } else { puts("0"); } return; } set <int> st; set <int> ::iterator it; bool ok = true; int mn = INF; for (int i = r; i >= l; i--) { if (i == r) { st.insert(a[i]); mn = min(mn, a[i]); continue; } if (mn < a[i]) { it = st.lower_bound(a[i]); it--; if (*it + a[i] > k) { ok = false; break; } } st.insert(a[i]); mn = min(mn, a[i]); } if (ok) { puts("1"); } else { puts("0"); } } main() { scanf("%d%d", &n, &tests); for (int i = 1; i <= n; i++) { scanf("%d", &a[i]); } build(); for (int i = 1; i <= n; i++) { pref[i] = pref[i - 1] + (a[i] > a[i + 1]); } // for (int i = 1; i <= n; i++) { // cout << pref[i] << " "; // }cout << endl; // // while (1) { // int l, r; // cin >> l >> r; // cout << get(l, r) << endl; // } while (tests--) { solve(); } }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 17 ms | 8568 KB | Output is correct |
2 | Correct | 16 ms | 8696 KB | Output is correct |
3 | Incorrect | 16 ms | 8568 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 17 ms | 8568 KB | Output is correct |
2 | Correct | 16 ms | 8696 KB | Output is correct |
3 | Incorrect | 16 ms | 8568 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 1488 ms | 18488 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 3097 ms | 9464 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 17 ms | 8568 KB | Output is correct |
2 | Correct | 16 ms | 8696 KB | Output is correct |
3 | Incorrect | 16 ms | 8568 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 17 ms | 8568 KB | Output is correct |
2 | Correct | 16 ms | 8696 KB | Output is correct |
3 | Incorrect | 16 ms | 8568 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |