# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
511504 | 2022-01-16T00:49:18 Z | Gev2706 | Hedgehog Daniyar and Algorithms (IZhO19_sortbooks) | C++17 | 1066 ms | 132112 KB |
#define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <cmath> #include <algorithm> #include <vector> #include <set> #include <unordered_set> #include <queue> #include <deque> #include <string> #include <sstream> #include <iomanip> #include <map> #include <unordered_map> #include <stack> #include <cstdio> #include <climits> #include <tuple> #include <ctime> #include <cstring> #include <numeric> #include <functional> #include <chrono> #include <cassert> #include <bitset> //#include <bit> //#include <ranges> //#include <numbers> #define itn int #define sacnf scanf #define sz(a) ((int)((a).size())) // printf("%.10f\n", ans); using ll = long long; using namespace std; const ll mod = 1e9 + 7; const int N = 1e6 + 5; int fm(int& L, int& R, vector<int>& l, vector<vector<int>>& st) { int j = l[R - L + 1]; return min(st[L][j], st[R - (1 << j) + 1][j]); } int main() { /*ios_base::sync_with_stdio(false); cin.tie(NULL);*/ int n, m; scanf("%d%d", &n, &m); vector<int> v(n); for (int i = 0; i < n; i++) scanf("%d", &v[i]); if (n <= 5000 && m <= 5000) { for (int i = 0; i < m; i++) { int l, r, k; scanf("%d%d%d", &l, &r, &k); l--, r--; int mx_num = 0, mx = 0; for (int j = l; j <= r; j++) { if (mx_num > v[j]) mx = max(mx, v[j] + mx_num); mx_num = max(mx_num, v[j]); } if (mx <= k) printf("1\n"); else printf("0\n"); } } else { stack<int> s; vector<int> ans(n); for (int i = 0; i < n; i++) { int next = v[i]; if (s.empty()) { s.push(i); continue; } while (!s.empty() && v[s.top()] > next) { ans[s.top()] = i; s.pop(); } s.push(i); } while (!s.empty()) { ans[s.top()] = 2e9; s.pop(); } vector<vector<int>> st(n + 2, vector<int>(22)); for (int i = 0; i < n; i++) st[i][0] = ans[i]; for (int j = 1; j <= 21; j++) for (int i = 0; i + (1 << j) < n + 2; i++) st[i][j] = min(st[i][j - 1], st[i + (1 << (j - 1))][j - 1]); vector<int> g(n + 2); g[1] = 0; for (int i = 2; i < n + 2; i++) g[i] = g[i / 2] + 1; while (m--) { int l, r, k; scanf("%d%d%d", &l, &r, &k); l--, r--; if (fm(l, r, g, st) <= r) printf("0\n"); else printf("1\n"); } } return 0; } // https://codeforces.com/problemset/problem/1136/D?locale=ru
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 204 KB | Output is correct |
2 | Correct | 1 ms | 204 KB | Output is correct |
3 | Correct | 1 ms | 204 KB | Output is correct |
4 | Correct | 1 ms | 204 KB | Output is correct |
5 | Correct | 1 ms | 204 KB | Output is correct |
6 | Correct | 1 ms | 204 KB | Output is correct |
7 | Correct | 1 ms | 204 KB | Output is correct |
8 | Correct | 1 ms | 300 KB | Output is correct |
9 | Correct | 1 ms | 204 KB | Output is correct |
10 | Correct | 1 ms | 204 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 204 KB | Output is correct |
2 | Correct | 1 ms | 204 KB | Output is correct |
3 | Correct | 1 ms | 204 KB | Output is correct |
4 | Correct | 1 ms | 204 KB | Output is correct |
5 | Correct | 1 ms | 204 KB | Output is correct |
6 | Correct | 1 ms | 204 KB | Output is correct |
7 | Correct | 1 ms | 204 KB | Output is correct |
8 | Correct | 1 ms | 300 KB | Output is correct |
9 | Correct | 1 ms | 204 KB | Output is correct |
10 | Correct | 1 ms | 204 KB | Output is correct |
11 | Correct | 3 ms | 332 KB | Output is correct |
12 | Correct | 6 ms | 416 KB | Output is correct |
13 | Correct | 7 ms | 420 KB | Output is correct |
14 | Correct | 12 ms | 428 KB | Output is correct |
15 | Correct | 11 ms | 460 KB | Output is correct |
16 | Correct | 20 ms | 408 KB | Output is correct |
17 | Correct | 19 ms | 388 KB | Output is correct |
18 | Correct | 21 ms | 332 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1002 ms | 131992 KB | Output is correct |
2 | Correct | 1039 ms | 132112 KB | Output is correct |
3 | Correct | 1047 ms | 131732 KB | Output is correct |
4 | Correct | 1066 ms | 131492 KB | Output is correct |
5 | Correct | 1022 ms | 131456 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 81 ms | 13380 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 204 KB | Output is correct |
2 | Correct | 1 ms | 204 KB | Output is correct |
3 | Correct | 1 ms | 204 KB | Output is correct |
4 | Correct | 1 ms | 204 KB | Output is correct |
5 | Correct | 1 ms | 204 KB | Output is correct |
6 | Correct | 1 ms | 204 KB | Output is correct |
7 | Correct | 1 ms | 204 KB | Output is correct |
8 | Correct | 1 ms | 300 KB | Output is correct |
9 | Correct | 1 ms | 204 KB | Output is correct |
10 | Correct | 1 ms | 204 KB | Output is correct |
11 | Correct | 3 ms | 332 KB | Output is correct |
12 | Correct | 6 ms | 416 KB | Output is correct |
13 | Correct | 7 ms | 420 KB | Output is correct |
14 | Correct | 12 ms | 428 KB | Output is correct |
15 | Correct | 11 ms | 460 KB | Output is correct |
16 | Correct | 20 ms | 408 KB | Output is correct |
17 | Correct | 19 ms | 388 KB | Output is correct |
18 | Correct | 21 ms | 332 KB | Output is correct |
19 | Incorrect | 182 ms | 26700 KB | Output isn't correct |
20 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 204 KB | Output is correct |
2 | Correct | 1 ms | 204 KB | Output is correct |
3 | Correct | 1 ms | 204 KB | Output is correct |
4 | Correct | 1 ms | 204 KB | Output is correct |
5 | Correct | 1 ms | 204 KB | Output is correct |
6 | Correct | 1 ms | 204 KB | Output is correct |
7 | Correct | 1 ms | 204 KB | Output is correct |
8 | Correct | 1 ms | 300 KB | Output is correct |
9 | Correct | 1 ms | 204 KB | Output is correct |
10 | Correct | 1 ms | 204 KB | Output is correct |
11 | Correct | 3 ms | 332 KB | Output is correct |
12 | Correct | 6 ms | 416 KB | Output is correct |
13 | Correct | 7 ms | 420 KB | Output is correct |
14 | Correct | 12 ms | 428 KB | Output is correct |
15 | Correct | 11 ms | 460 KB | Output is correct |
16 | Correct | 20 ms | 408 KB | Output is correct |
17 | Correct | 19 ms | 388 KB | Output is correct |
18 | Correct | 21 ms | 332 KB | Output is correct |
19 | Correct | 1002 ms | 131992 KB | Output is correct |
20 | Correct | 1039 ms | 132112 KB | Output is correct |
21 | Correct | 1047 ms | 131732 KB | Output is correct |
22 | Correct | 1066 ms | 131492 KB | Output is correct |
23 | Correct | 1022 ms | 131456 KB | Output is correct |
24 | Incorrect | 81 ms | 13380 KB | Output isn't correct |
25 | Halted | 0 ms | 0 KB | - |