211662026-01-12 15:37:55mártonágnesTűzijátékcpp17Accepted 50/5045ms1240 KiB
#include <iostream>
#include <set>

using namespace std;

struct telepules
{
    int tav;
};
int dmin;
bool elegtavol (int i, int j, telepules t[])
{
    if (t[i].tav-t[j].tav>=dmin || t[j].tav-t[i].tav>=dmin) return true;
    return false;
}
int kovi (int i, telepules t[])
{
    int j=i+1;
    while (!elegtavol(i, j, t))
    {
        j++;
    }
    return j;
}
int elozo (int i, telepules t[])
{
    int j=i-1;
    while (!elegtavol(i, j, t))
    {
        j--;
    }
    return j;
}
int main()
{
    int thind, N;
    cin >> N >> thind >> dmin;
    telepules t[N+1];
    for (int k=1; k<=N; k++)
    {
        cin>>t[k].tav;
    }
    set <int> tind;
    int i=thind;
    while (i>0)
    {
        tind.insert(i);
        i=elozo(i, t);
    }
    i=thind;
    while (i<=N)
    {
        tind.insert(i);
        i=kovi(i, t);
    }
    cout<<tind.size()<<endl;
    set<int>::iterator it;
    for (it=tind.begin(); it!=tind.end(); it++)
    {
        cout<<*it<<" ";
    }
    return 0;
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms316 KiB
2Accepted0/043ms1076 KiB
3Accepted2/21ms316 KiB
4Accepted2/21ms316 KiB
5Accepted2/21ms316 KiB
6Accepted2/21ms316 KiB
7Accepted2/21ms316 KiB
8Accepted2/21ms316 KiB
9Accepted2/24ms316 KiB
10Accepted2/24ms316 KiB
11Accepted2/24ms460 KiB
12Accepted2/28ms316 KiB
13Accepted2/28ms316 KiB
14Accepted2/28ms316 KiB
15Accepted3/38ms456 KiB
16Accepted3/313ms448 KiB
17Accepted3/317ms744 KiB
18Accepted3/320ms692 KiB
19Accepted3/345ms1068 KiB
20Accepted3/343ms1240 KiB
21Accepted4/443ms1236 KiB
22Accepted4/445ms672 KiB