243232026-02-09 10:41:06SzeredaiNatanaelTűzijátékcpp17Accepted 50/5045ms2100 KiB
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

vector<int> ans;

int main()
{
	int n, s, t; cin >> n >> s >> t;
	vector<long long> v(n + 1);
	vector<long long> x(n + 1);
	for (int i = 1; i <= n; ++i) {
		cin >> v[i];
	}
	
	ans.push_back(s);
	int tav = 0;
	for (int i = s+1; i <= n; ++i) {
		x[i] = v[i] - v[i - 1];
		if (x[i] + tav >= t) {
			ans.push_back(i);
			tav = 0;
		}
		else if (x[i] + tav < t) {
			tav += x[i];
		}
	}

	tav = 0;
	for (int i = s-1; i >= 1; --i) {
		x[i] = v[i + 1] - v[i];
		if (x[i] + tav >= t) {
			ans.push_back(i);
			tav = 0;
		}
		else if (x[i] + tav < t) {
			tav += x[i];
		}
	}
	
	sort(ans.begin(), ans.end());
	cout << ans.size() << "\n";
	for (auto& i : ans) {
		cout << i << " ";
	}
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms500 KiB
2Accepted0/043ms2100 KiB
3Accepted2/21ms316 KiB
4Accepted2/21ms316 KiB
5Accepted2/21ms316 KiB
6Accepted2/21ms316 KiB
7Accepted2/21ms316 KiB
8Accepted2/22ms316 KiB
9Accepted2/23ms316 KiB
10Accepted2/24ms580 KiB
11Accepted2/24ms540 KiB
12Accepted2/28ms604 KiB
13Accepted2/28ms700 KiB
14Accepted2/28ms696 KiB
15Accepted3/38ms692 KiB
16Accepted3/313ms884 KiB
17Accepted3/317ms1040 KiB
18Accepted3/319ms1200 KiB
19Accepted3/345ms1976 KiB
20Accepted3/343ms2100 KiB
21Accepted4/443ms1980 KiB
22Accepted4/443ms1844 KiB