Doprogramovanie do: 30. máj 2022 23:59
3 dni
Popisy už neodovzdávajte. Ešte stále však môžete odosielať vaše programy, za ktoré dostanete časť bodov.
Počet bodov:
Popis:  12b
Program:  8b

V každej správnej záhradke by mal byť strážny pes. Preto aj my máme na záhradke nášho KSPsa1, ktorý dáva pozor, aby nenastal žiadny nepríjemný incident. Záhradka je ale veľmi veľká a sám ju neustriehne. Preto má v záhradke aj pomocníkov – malých KSPsíkov! Keďže sú to ale ešte len malé šteniatka, musí na nich dávať dobrý pozor a preto teraz celé dni chodí od jedného k druhému a kontroluje ich.

KSPsíkovia sú, prirodzene, veľmi inteligentní, no trochu nedočkaví. Preto si začali v hlave počítať, pri ktorom z nich zastane KSPs niekedy v budúcnosti. Jednému z nich sa už ale počítať v hlave nechce, a preto by chcel, aby ste mu pomohli.

Úloha

Naša záhradka má tvar jednodimenzionálneho (jednorozmerného) poľa, ktorého políčka sú buď prázdne, alebo je na nich KSPsík. Tí sa nehýbu a po celý čas zostávajú na svojich pôvodných políčkach. KSPs sa na začiatku nachádza na niektorom políčku s KSPsíkom a pozerá sa smerom doprava, potom sa v každom kroku správa nasledovne:

  • Ak vidí vo svojom smere nejakého KSPsíka vo vzdialenosti \(\le x\), ide za ním.
  • Ak nie, tak zistí, že či je opačným smerom nejaký KSPsík vo vzdialenosti \(\le x\). Ak je, tak sa otočí a ide za ním.
  • Inak ostáva na svojom mieste.

Vašou úlohou je zistiť, na ktorom políčku sa bude KSPs nachádzať po \(k\) takýchto krokoch.

Formát vstupu

Na prvom riadku dostanete štyri čísla \(n, s, x, k\), kde \(n\) je počet KSPsíkov, \(s\) označuje KSPsíka, na ktorého políčku KSPs začína, \(x\) je vzdialenosť na ktorú KSPs dovidí a \(k\) je počet krokov.

Nasleduje jeden riadok, ktorý obsahuje \(n\) usporiadaných celých čísel \(n_i\), kde \(n_i\) označuje pozíciu \(i\)-tého KSPsíka. KSPs začina na políčku \(n_s\).

Dajte si pozor, že niektoré čísla na vstupe sa nemusia zmestiť do obyčajnej 32-bitovej premennej. Odporúčame použiť 64-bitové premenné (long long v C/C++).

Formát výstupu

Vypíšte jediné číslo – číslo políčka, na ktorom sa bude KSPs nachádzať po tom, čo urobí \(k\) krokov.

Hodnotenie

Je 8 sád vstupov. Platia v nich nasledovné obmedzenia:

Sada 1 2 3 4 5 6 7 8
\(0 < n \le\) \(10\) \(1000\) \(10^4\) \(10\) \(1000\) \(10^4\) \(10^6\) \(10^6\)
\(0 \le n_i \le\) \(100\) \(1000\) \(10^7\) \(100\) \(10^5\) \(10^7\) \(10^{12}\) \(10^{12}\)
\(0 \le k \le\) \(10\) \(1000\) \(10^5\) \(10^6\) \(10^8\) \(10^8\) \(10^{18}\) \(10^{18}\)

Príklad

Input:

4 2 10 3
1 3 5 7

Output:

3

KSPs začína na políčku s číslom \(5\), v ďalšom kroku pôjde doprava k najbližšiemu KSPsíkovi na políčko \(7\). Potom sa už ale musí otočiť a vrátiť na políčko \(5\), keďže ďalej už nie je žiadny KSPsík. V poslednom kroku prejde na políčko \(3\).

Input:

3 1 1 47
0 2 4

Output:

2

KSPs nevidí na žiadneho ďalšieho KSPsíka (keďže sú príliš ďaleko) a preto ostane na pôvodnom mieste.


  1. Ak ešte KSPsa nepoznáte, nezúfajte. Stačí sledovať náš Instagram, kde sa čoskoro objaví!↩︎

Odovzdávanie

Na odovzdávanie sa musíš prihlásiť

Otázky a diskusia

Po skončení kola budete mať príležitosť na diskutovanie o riešeniach v diskusii pod vzorovým riešením.