91202024-02-14 20:42:30111A Barbárcpp17Hibás válasz 0/1001.1s127764 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long

#define pii pair<int, int>

int random(int l, int h) {
	static mt19937 gen;
	return uniform_int_distribution<int>(l, h)(gen);
}

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 = 20;
	cin >> N;
	vector<int> v(N);
	for (int i = 0; i < N; i++) {
		v[i] = i == 0 ? 1 : random(v[i - 1] + 1, v[i - 1] + 20);
		cin >> v[i];
	}
	vector<int> ans(N);
	ans[0] = N - 1;
	ans[N - 1] = 0;
//	for (int i = 1; i < N - 1; i++) {
//		list<int> l(v.begin(), v.end());
//		auto t = next(l.begin(), i);
//		while (true) {
//			if (*t - *prev(t) <= *next(t) - *t) {
//				t = prev(l.erase(t));
//			}
//			else {
//				t = l.erase(t);
//			}
//			if (t == l.begin()) {
//				ans[i] = N - 1;
//				break;
//			}
//			if (t == prev(l.end())) {
//				ans[i] = 0;
//				break;
//			}
//		}
//	}
//	for (int i = 0; i < N; i++) {
//		cout << setw(3) << ans[i] << ' ';
//	}
//	cout << '\n';
	vector<int> a(N, 0);
	vector<int> b(N, N - 1);
	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<int> pf(N, 0);
	vector<int> sf(N, N - 1);
	for (int i = 1; i <= N - 1; i++) {
		pf[i] = max(pf[i - 1], a[i]);
	}
	for (int i = N - 2; i >= 0; i--) {
		sf[i] = min(sf[i + 1], b[i]);
	}
//	for(int i=0;i<N;i++)cout<<setw(3)<<i<<' ';cout<<endl;
//	for(int i=0;i<N;i++)cout<<setw(3)<<v[i]<<' ';cout<<endl;
//	for(int i=0;i<N;i++)cout<<setw(3)<<a[i]<<' ';cout<<endl;
//	for(int i=0;i<N;i++)cout<<setw(3)<<b[i]<<' ';cout<<endl;
//	return 0;
	for (int i = 1; i < N - 1; i++) {
		ans[i] = *min_element(b.begin() + pf[i], b.end()) >= i ? 0 : N - 1;
	}
	for (int i = 0; i < N; i++) {
		cout << setw(3) << ans[i] << ' ';
	}
	cout << '\n';
	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1828 KiB
2Elfogadva3ms2060 KiB
subtask20/12
3Elfogadva3ms2144 KiB
4Hibás válasz3ms2372 KiB
5Hibás válasz3ms2488 KiB
6Hibás válasz3ms2700 KiB
7Hibás válasz2ms2556 KiB
8Hibás válasz3ms2692 KiB
9Hibás válasz3ms2776 KiB
10Hibás válasz3ms2988 KiB
11Hibás válasz3ms3072 KiB
12Hibás válasz3ms3072 KiB
subtask30/28
13Hibás válasz3ms3372 KiB
14Hibás válasz4ms3596 KiB
15Hibás válasz3ms3472 KiB
16Hibás válasz3ms3528 KiB
17Hibás válasz4ms3796 KiB
18Elfogadva3ms3804 KiB
19Elfogadva4ms4072 KiB
20Hibás válasz3ms4028 KiB
21Hibás válasz3ms4040 KiB
subtask40/35
22Időlimit túllépés1.1s8936 KiB
23Időlimit túllépés1.062s10172 KiB
24Időlimit túllépés1.054s10904 KiB
25Időlimit túllépés1.062s12024 KiB
26Időlimit túllépés1.054s10732 KiB
27Időlimit túllépés1.065s13312 KiB
28Időlimit túllépés1.041s13828 KiB
29Időlimit túllépés1.057s14516 KiB
30Időlimit túllépés1.065s15092 KiB
31Időlimit túllépés1.08s16336 KiB
subtask50/25
32Időlimit túllépés1.055s66464 KiB
33Időlimit túllépés1.042s61696 KiB
34Időlimit túllépés1.082s66368 KiB
35Időlimit túllépés1.075s61724 KiB
36Időlimit túllépés1.067s64440 KiB
37Időlimit túllépés1.044s66340 KiB
38Időlimit túllépés1.059s65384 KiB
39Időlimit túllépés1.059s66428 KiB
40Időlimit túllépés1.08s66496 KiB
41Időlimit túllépés1.064s66228 KiB
42Időlimit túllépés1.07s66560 KiB
43Időlimit túllépés1.069s76868 KiB
44Időlimit túllépés1.062s88532 KiB
45Időlimit túllépés1.059s98160 KiB
46Időlimit túllépés1.059s107900 KiB
47Időlimit túllépés1.049s120696 KiB
48Időlimit túllépés1.088s127748 KiB
49Időlimit túllépés1.067s127764 KiB
50Időlimit túllépés1.065s127536 KiB