91212024-02-14 21:09:41111A Barbárcpp17Időlimit túllépés 40/1001.1s35588 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 = 50;
	cin >> N;
	vector<int> v(N);
	for (int i = 0; i < N; i++) {
		v[i] = random(1, 1000000);
	}
	sort(v.begin(), v.end());
	for (int i = 0; i < N; i++) {
		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();
	}
	for (int i = 1; i < N - 1; i++) {
		int h = i;
		for (int j = i; j > 0; j--) {
			if (a[j] > h) {
				while (h < N && b[h] >= j) {
					h++;
				}
			}
		}
		ans[i] = h == N ? 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
2Elfogadva3ms2064 KiB
subtask212/12
3Elfogadva3ms2284 KiB
4Elfogadva3ms2452 KiB
5Elfogadva3ms2676 KiB
6Elfogadva3ms2768 KiB
7Elfogadva3ms2976 KiB
8Elfogadva3ms3184 KiB
9Elfogadva3ms3404 KiB
10Elfogadva3ms3484 KiB
11Elfogadva3ms3604 KiB
12Elfogadva3ms3696 KiB
subtask328/28
13Elfogadva3ms3724 KiB
14Elfogadva3ms3984 KiB
15Elfogadva3ms3940 KiB
16Elfogadva3ms3940 KiB
17Elfogadva3ms3944 KiB
18Elfogadva3ms4348 KiB
19Elfogadva3ms4364 KiB
20Elfogadva3ms4432 KiB
21Elfogadva3ms4328 KiB
subtask40/35
22Időlimit túllépés1.1s6864 KiB
23Időlimit túllépés1.054s6760 KiB
24Időlimit túllépés1.062s6884 KiB
25Időlimit túllépés1.057s6964 KiB
26Időlimit túllépés1.077s5644 KiB
27Időlimit túllépés1.054s6820 KiB
28Időlimit túllépés1.049s6908 KiB
29Időlimit túllépés1.085s6876 KiB
30Időlimit túllépés1.057s6828 KiB
31Időlimit túllépés1.065s6824 KiB
subtask50/25
32Időlimit túllépés1.072s35032 KiB
33Időlimit túllépés1.042s31912 KiB
34Időlimit túllépés1.074s35048 KiB
35Időlimit túllépés1.057s31988 KiB
36Időlimit túllépés1.057s33828 KiB
37Időlimit túllépés1.074s35212 KiB
38Időlimit túllépés1.067s34468 KiB
39Időlimit túllépés1.065s35104 KiB
40Időlimit túllépés1.065s35028 KiB
41Időlimit túllépés1.078s35048 KiB
42Időlimit túllépés1.054s34008 KiB
43Időlimit túllépés1.065s34600 KiB
44Időlimit túllépés1.05s35180 KiB
45Időlimit túllépés1.065s35100 KiB
46Időlimit túllépés1.07s35280 KiB
47Időlimit túllépés1.052s35376 KiB
48Időlimit túllépés1.075s35476 KiB
49Időlimit túllépés1.085s35588 KiB
50Időlimit túllépés1.065s35532 KiB