253992026-02-19 19:28:03lorantbTűzijátékcpp17Accepted 50/5045ms820 KiB
#include <bits/stdc++.h>
using namespace std;
vector<int> nums;
vector<int> v;
int n,x,k; 

void solve(int a, int b) {
    if(b == 0) {
        int dist = 0;
        for(int i = a+1; i < n; i++) {
            dist += nums[i]-nums[i-1];
            if(dist >= k) {
                v.push_back(i);
                solve(i,0);
                break;
            }
        }
    }
    else {
        int dist = 0;
        for(int i = a-1; i >= 0; i--) {
            dist += nums[i+1] - nums[i];
            if(dist >= k) {
                v.push_back(i);
                solve(i, 1);
                break;
            }
        }
    }
}

int main() {
    cin >> n >> x >> k;
    x--;
    nums.assign(n,0);
    for(int i = 0; i < n; i++) cin >> nums[i];
    v.push_back(x);
    solve(x,0);
    solve(x,1);
    sort(begin(v), end(v));
    cout << v.size() << endl;
    for(int i : v) cout << i+1 << " ";
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms316 KiB
2Accepted0/043ms820 KiB
3Accepted2/21ms316 KiB
4Accepted2/21ms316 KiB
5Accepted2/21ms316 KiB
6Accepted2/21ms316 KiB
7Accepted2/21ms316 KiB
8Accepted2/21ms316 KiB
9Accepted2/23ms316 KiB
10Accepted2/24ms508 KiB
11Accepted2/24ms440 KiB
12Accepted2/28ms468 KiB
13Accepted2/28ms392 KiB
14Accepted2/27ms468 KiB
15Accepted3/38ms508 KiB
16Accepted3/312ms528 KiB
17Accepted3/317ms748 KiB
18Accepted3/319ms612 KiB
19Accepted3/345ms804 KiB
20Accepted3/343ms804 KiB
21Accepted4/443ms808 KiB
22Accepted4/443ms800 KiB