133922025-01-07 19:07:16BucsMateTűzijátékcpp17Elfogadva 50/5045ms1704 KiB
#include <iostream>
#include <vector>
#include <stack>

using namespace std;

int tavolsagok[100001] = {};

int main()
{
    int N, start, min_tav;
    cin >> N >> start >> min_tav;

    for(int i = 1; i <= N; i++){
        cin >> tavolsagok[i];
    }
    vector<int> megoldas_balra;
    vector<int> megoldas_jobbra;
    megoldas_jobbra.push_back(start);

    int index = start+1;
    int utolso_tavolsag = tavolsagok[start];
    while(index <= N){
        if(tavolsagok[index] - utolso_tavolsag >= min_tav){
            utolso_tavolsag = tavolsagok[index];
            megoldas_jobbra.push_back(index);
        }
        index++;
    }

    index = start-1;
    utolso_tavolsag = tavolsagok[start];
    while(index >= 1){
        if(utolso_tavolsag - tavolsagok[index] >= min_tav){
            utolso_tavolsag = tavolsagok[index];
            megoldas_balra.push_back(index);
        }
        index--;
    }

    cout << megoldas_balra.size() + megoldas_jobbra.size() << endl;
    for(int i = megoldas_balra.size()-1; i >= 0; i--){
        cout << megoldas_balra[i] << " ";
    }
    for(int i = 0; i < megoldas_jobbra.size(); i++){
        cout << megoldas_jobbra[i] << " ";
    }

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/043ms1588 KiB
3Elfogadva2/21ms316 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva2/21ms564 KiB
6Elfogadva2/21ms508 KiB
7Elfogadva2/21ms352 KiB
8Elfogadva2/21ms316 KiB
9Elfogadva2/23ms316 KiB
10Elfogadva2/24ms508 KiB
11Elfogadva2/24ms316 KiB
12Elfogadva2/28ms592 KiB
13Elfogadva2/28ms604 KiB
14Elfogadva2/28ms584 KiB
15Elfogadva3/38ms456 KiB
16Elfogadva3/313ms760 KiB
17Elfogadva3/317ms712 KiB
18Elfogadva3/319ms1088 KiB
19Elfogadva3/345ms1704 KiB
20Elfogadva3/343ms1588 KiB
21Elfogadva4/443ms1588 KiB
22Elfogadva4/443ms1648 KiB