149722025-02-10 11:32:21csdavidTűzijátékcpp17Accepted 50/5016ms1204 KiB
#include <iostream>
#include <fstream>
using namespace std;

struct varos{
    bool tuzijatek=0, nemlehet=0;
    int tav;
};

int main()
{
    cin.tie(NULL);
    ios_base::sync_with_stdio(false);
    int n, telephely, t, elozo=-1000000000, m=1;
    cin >> n >> telephely >> t;
    telephely--;
    varos a[n];
    for(int i=0; i<n; i++){
        cin >> a[i].tav;
    }
    a[telephely].tuzijatek=1;
    a[telephely].nemlehet=1;
    for(int i=telephely+1; i<n&&a[i].tav<a[telephely].tav+t; i++){
        a[i].nemlehet=1;
    }
    for(int i=telephely-1; i>=0&&a[i].tav>a[telephely].tav-t; i--){
        a[i].nemlehet=1;
    }
    for(int i=0; i<n; i++){
        if(!a[i].nemlehet&&a[i].tav>=elozo+t){
            a[i].nemlehet=1;
            a[i].tuzijatek=1;
            elozo=a[i].tav;
            m++;
        }
        else{
            a[i].nemlehet=1;
        }
    }
    cout << m << '\n';
    for(int i=0; i<n; i++){
        if(a[i].tuzijatek){
            cout << i+1 << ' ';
        }
    }
    return 0;
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms316 KiB
2Accepted0/014ms1080 KiB
3Accepted2/21ms316 KiB
4Accepted2/21ms316 KiB
5Accepted2/21ms316 KiB
6Accepted2/21ms316 KiB
7Accepted2/21ms316 KiB
8Accepted2/21ms316 KiB
9Accepted2/22ms316 KiB
10Accepted2/22ms380 KiB
11Accepted2/22ms316 KiB
12Accepted2/23ms564 KiB
13Accepted2/24ms564 KiB
14Accepted2/23ms564 KiB
15Accepted3/33ms564 KiB
16Accepted3/34ms564 KiB
17Accepted3/36ms664 KiB
18Accepted3/38ms820 KiB
19Accepted3/316ms1104 KiB
20Accepted3/314ms1200 KiB
21Accepted4/414ms1204 KiB
22Accepted4/414ms1200 KiB