#include <bits/stdc++.h>
using namespace std;
#define int long long
signed main() {
ios::sync_with_stdio(0);
cin.tie(0);
#ifdef CB
freopen("in.txt", "r", stdin);
// freopen("out.txt", "w", stdout);
#endif
int N;
cin >> N;
vector<int> v(N);
for (int i = 0; i < N; i++) {
cin >> v[i];
}
vector<int> a(N);
vector<int> b(N);
for (int i = 1; i <= N - 2; i++) {
a[i] = lower_bound(v.begin(), v.end(), v[i] * 2 - v[i - 1]) - v.begin() - 1;
b[i] = lower_bound(v.begin(), v.end(), v[i] * 2 - v[i + 1]) - v.begin();
}
vector<array<int, 20>> spt(N);
for (int i = 0; i < N; i++) {
spt[i][0] = a[i];
}
for (int j = 1; j < 20; j++) {
for (int l = 0, r = 1 << j - 1; r < N; l++, r++) {
spt[l][j] = max(spt[l][j - 1], spt[r][j - 1]);
}
}
auto query = [&](int l, int r) {
int i = __lg(r - l);
return max(spt[l][i], spt[r - (1 << i)][i]);
};
vector<int> ans(N);
ans[0] = N - 1;
ans[N - 1] = 0;
vector<int> s;
for (int i = N - 2; i >= 1; i--) {
while (!s.empty() && b[s.back()] >= b[i]) {
s.pop_back();
}
s.push_back(i);
ans[i] = N - 1;
int x = query(0, b[s.front()] + 1);
if (x > s.front()) {
ans[i] = 0;
continue;
}
for (int j = 1; j < s.size(); j++) {
int y = query(b[s.front()] + 1, b[s[j]] + 1);
if (query(b[s[j]] + 1, b[s.back()] + 1) <= s.back() && y > s.back()) {
continue;
}
if (y <= s[j] && x > s[j]) {
ans[i] = 0;
break;
}
}
}
for (int i = 0; i < N; i++) {
cout << ans[i] << ' ';
}
cout << '\n';
return 0;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
subtask1 | 0/0 | ||||||
1 | Elfogadva | 3ms | 1976 KiB | ||||
2 | Elfogadva | 3ms | 2204 KiB | ||||
subtask2 | 0/12 | ||||||
3 | Elfogadva | 3ms | 2316 KiB | ||||
4 | Futási hiba | 3ms | 2300 KiB | ||||
5 | Futási hiba | 3ms | 2712 KiB | ||||
6 | Futási hiba | 3ms | 2728 KiB | ||||
7 | Futási hiba | 3ms | 2776 KiB | ||||
8 | Futási hiba | 3ms | 2948 KiB | ||||
9 | Futási hiba | 3ms | 3332 KiB | ||||
10 | Futási hiba | 3ms | 3348 KiB | ||||
11 | Futási hiba | 3ms | 3304 KiB | ||||
12 | Futási hiba | 3ms | 3436 KiB | ||||
subtask3 | 0/28 | ||||||
13 | Futási hiba | 3ms | 3824 KiB | ||||
14 | Futási hiba | 3ms | 4212 KiB | ||||
15 | Futási hiba | 3ms | 4156 KiB | ||||
16 | Futási hiba | 3ms | 4284 KiB | ||||
17 | Futási hiba | 3ms | 4464 KiB | ||||
18 | Elfogadva | 3ms | 4424 KiB | ||||
19 | Elfogadva | 3ms | 4384 KiB | ||||
20 | Futási hiba | 3ms | 4656 KiB | ||||
21 | Futási hiba | 3ms | 4836 KiB | ||||
subtask4 | 0/35 | ||||||
22 | Futási hiba | 68ms | 41824 KiB | ||||
23 | Futási hiba | 70ms | 42016 KiB | ||||
24 | Futási hiba | 68ms | 42000 KiB | ||||
25 | Futási hiba | 70ms | 42416 KiB | ||||
26 | Futási hiba | 37ms | 26572 KiB | ||||
27 | Elfogadva | 75ms | 42128 KiB | ||||
28 | Elfogadva | 67ms | 42100 KiB | ||||
29 | Elfogadva | 65ms | 42136 KiB | ||||
30 | Elfogadva | 65ms | 42168 KiB | ||||
31 | Futási hiba | 63ms | 42004 KiB | ||||
subtask5 | 0/25 | ||||||
32 | Futási hiba | 712ms | 380116 KiB | ||||
33 | Futási hiba | 646ms | 342552 KiB | ||||
34 | Futási hiba | 731ms | 380148 KiB | ||||
35 | Futási hiba | 651ms | 342704 KiB | ||||
36 | Futási hiba | 693ms | 364568 KiB | ||||
37 | Elfogadva | 790ms | 380344 KiB | ||||
38 | Elfogadva | 768ms | 372464 KiB | ||||
39 | Elfogadva | 791ms | 380180 KiB | ||||
40 | Elfogadva | 788ms | 379888 KiB | ||||
41 | Futási hiba | 737ms | 378680 KiB | ||||
42 | Futási hiba | 675ms | 365488 KiB | ||||
43 | Futási hiba | 694ms | 374416 KiB | ||||
44 | Futási hiba | 721ms | 378772 KiB | ||||
45 | Futási hiba | 713ms | 377256 KiB | ||||
46 | Futási hiba | 712ms | 377384 KiB | ||||
47 | Futási hiba | 736ms | 378984 KiB | ||||
48 | Futási hiba | 748ms | 378636 KiB | ||||
49 | Futási hiba | 904ms | 378880 KiB | ||||
50 | Futási hiba | 750ms | 378832 KiB |