Please sign in first.
Submission #50279498
Source Code Expand
// LUOGU_RID: 146908211
#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 5;
int n, V, x[N], v[20], h;
int L[20][N], R[20][N];
int f[1 << 20], g[1 << 20]; // f 为前缀 g 为 后缀
bitset<N> ans;
bool chk(int x, int y) { return x & (1 << y); }
int chg(int x, int y) { return x ^ (1 << y); }
int main(void) {
cin >> n >> V;
for (int i = 1; i <= n; ++i) cin >> x[i];
for (int i = V; i; v[h++] = (i >>= 1));
v[h] = V;
for (int i = 0; i <= h; ++i) {
for (int j = 1; j <= n; ++j)
if (j == 1 || x[j] - x[j - 1] > v[i]) L[i][j] = j;
else L[i][j] = L[i][j - 1];
for (int j = n; j >= 1; --j)
if (j == n || x[j + 1] - x[j] > v[i]) R[i][j] = j;
else R[i][j] = R[i][j + 1];
}
for (int s = 0; s < 1 << h; ++s) {
f[s] = 0, g[s] = n + 1;
for (int i = 0; i < h; ++i) if (s >> i & 1)
f[s] = max(f[s], R[i][f[s ^ (1 << i)] + 1]),
g[s] = min(g[s], L[i][g[s ^ (1 << i)] - 1]);
}
vector<pair<int, int>> segs;
for (int i = 1; i <= n; ++i)
if (L[h][i] == i) segs.emplace_back(i, R[h][i]);
if (segs.size() <= h + 1) {
for (auto p : segs) {
for (int s = 0; s < 1 << h; ++s) {
int t = (1 << h) - 1 - s;
if (f[s] >= p.first - 1 && g[t] <= p.second + 1) {
for (int i = p.first; i <= p.second; ++i) ans[i] = 1;
break;
}
}
}
}
for (int i = 1; i <= n; ++i) cout << (ans[i] ? "Possible\n" : "Impossible\n");
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | E - Camel and Oases |
| User | james1BadCreeper |
| Language | C++ 17 (gcc 12.2) |
| Score | 1000 |
| Code Size | 1624 Byte |
| Status | AC |
| Exec Time | 101 ms |
| Memory | 36140 KiB |
Compile Error
Main.cpp: In function ‘int main()’:
Main.cpp:38:21: warning: comparison of integer expressions of different signedness: ‘std::vector<std::pair<int, int> >::size_type’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
38 | if (segs.size() <= h + 1) {
| ~~~~~~~~~~~~^~~~~~~~
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 1000 / 1000 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00_example_01.txt, 00_example_02.txt, 00_example_03.txt |
| All | 00_example_01.txt, 00_example_02.txt, 00_example_03.txt, 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, 29.txt, 30.txt, 31.txt, 32.txt, 33.txt, 34.txt, 35.txt, 36.txt, 37.txt, 38.txt, 39.txt, 40.txt, 41.txt, 42.txt, 43.txt, 44.txt, 45.txt, 46.txt, 47.txt, 48.txt, 49.txt, 50.txt, 51.txt, 52.txt, 53.txt, 54.txt, 55.txt, 56.txt, 57.txt, 58.txt, 59.txt, 60.txt, 61.txt, 62.txt, 63.txt, 64.txt, 65.txt, 66.txt, 67.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_example_01.txt | AC | 1 ms | 3580 KiB |
| 00_example_02.txt | AC | 1 ms | 3516 KiB |
| 00_example_03.txt | AC | 1 ms | 3544 KiB |
| 01.txt | AC | 21 ms | 5896 KiB |
| 02.txt | AC | 6 ms | 4248 KiB |
| 03.txt | AC | 21 ms | 5716 KiB |
| 04.txt | AC | 6 ms | 4192 KiB |
| 05.txt | AC | 19 ms | 5716 KiB |
| 06.txt | AC | 33 ms | 10324 KiB |
| 07.txt | AC | 12 ms | 6712 KiB |
| 08.txt | AC | 28 ms | 8684 KiB |
| 09.txt | AC | 14 ms | 7100 KiB |
| 10.txt | AC | 23 ms | 7236 KiB |
| 11.txt | AC | 20 ms | 8144 KiB |
| 12.txt | AC | 25 ms | 7588 KiB |
| 13.txt | AC | 97 ms | 36084 KiB |
| 14.txt | AC | 21 ms | 5704 KiB |
| 15.txt | AC | 6 ms | 4268 KiB |
| 16.txt | AC | 21 ms | 5716 KiB |
| 17.txt | AC | 5 ms | 4216 KiB |
| 18.txt | AC | 19 ms | 5744 KiB |
| 19.txt | AC | 11 ms | 4592 KiB |
| 20.txt | AC | 31 ms | 9744 KiB |
| 21.txt | AC | 13 ms | 6916 KiB |
| 22.txt | AC | 30 ms | 9236 KiB |
| 23.txt | AC | 16 ms | 7592 KiB |
| 24.txt | AC | 23 ms | 7652 KiB |
| 25.txt | AC | 19 ms | 7684 KiB |
| 26.txt | AC | 29 ms | 9252 KiB |
| 27.txt | AC | 97 ms | 36140 KiB |
| 28.txt | AC | 32 ms | 9516 KiB |
| 29.txt | AC | 12 ms | 6476 KiB |
| 30.txt | AC | 31 ms | 9368 KiB |
| 31.txt | AC | 17 ms | 7004 KiB |
| 32.txt | AC | 25 ms | 7572 KiB |
| 33.txt | AC | 18 ms | 7528 KiB |
| 34.txt | AC | 28 ms | 8456 KiB |
| 35.txt | AC | 101 ms | 36020 KiB |
| 36.txt | AC | 22 ms | 5760 KiB |
| 37.txt | AC | 6 ms | 4264 KiB |
| 38.txt | AC | 21 ms | 5760 KiB |
| 39.txt | AC | 6 ms | 4268 KiB |
| 40.txt | AC | 19 ms | 5708 KiB |
| 41.txt | AC | 11 ms | 4592 KiB |
| 42.txt | AC | 19 ms | 5884 KiB |
| 43.txt | AC | 11 ms | 4652 KiB |
| 44.txt | AC | 21 ms | 5708 KiB |
| 45.txt | AC | 10 ms | 4788 KiB |
| 46.txt | AC | 11 ms | 6388 KiB |
| 47.txt | AC | 28 ms | 8368 KiB |
| 48.txt | AC | 17 ms | 7092 KiB |
| 49.txt | AC | 25 ms | 8348 KiB |
| 50.txt | AC | 16 ms | 6756 KiB |
| 51.txt | AC | 26 ms | 7840 KiB |
| 52.txt | AC | 16 ms | 6812 KiB |
| 53.txt | AC | 28 ms | 8104 KiB |
| 54.txt | AC | 16 ms | 6912 KiB |
| 55.txt | AC | 28 ms | 8656 KiB |
| 56.txt | AC | 10 ms | 6000 KiB |
| 57.txt | AC | 25 ms | 8412 KiB |
| 58.txt | AC | 17 ms | 7088 KiB |
| 59.txt | AC | 23 ms | 7536 KiB |
| 60.txt | AC | 18 ms | 7336 KiB |
| 61.txt | AC | 27 ms | 8372 KiB |
| 62.txt | AC | 17 ms | 7144 KiB |
| 63.txt | AC | 27 ms | 8192 KiB |
| 64.txt | AC | 17 ms | 7240 KiB |
| 65.txt | AC | 28 ms | 8444 KiB |
| 66.txt | AC | 1 ms | 3644 KiB |
| 67.txt | AC | 1 ms | 3560 KiB |