Fişierul intrare/ieşire:asort.in, asort.outSursăONI 2016 baraj gimnaziu
AutorCarmen MincaAdăugată defrancuCristian Francu francu
Timp execuţie pe test0.1 secLimită de memorie2048 kbytes
Scorul tăuN/ADificultatenormalnormalnormalnormalnormal

Vezi solutiile trimise

Asort (baraj gimnaziu)

Notă: punctarea acestei probleme este uşor modificată faţă de original, din limitări ale varena. Toate testele au acelaşi punctaj.

Se consideră un număr natural par N şi şirul ordonat crescător X format din primele N numere naturale nenule: X1 = 1, X2 = 2, ..., XN = N. Poziţiile numerelor din şir se pot modifica doar conform regulii “A”,după cum urmează:

  • dacă X1 este număr impar, atunci se interschimbă X1 cu X2, X3 cu X4,..., XN-1 cu XN;
  • dacă X1 este par atunci se interschimbă X2 cu X3, X4 cu X5,..., XN-2 cu XN-1, iar XN cu X1.

Aplicând de R ori regula “A” şirului X se transformă şirul dat într-un şir “A sortat”.

Cerinţe

Cunoscându-se numerele naturale N, R, K şi T, scrieţi un program care să determine:

  1. Numărul situat pe poziţia K în şirul “A sortat” obţinut prin aplicarea de R ori a regulii “A” şirului X.
  2. Predecesorul şi succesorul numărului T în şirul “A sortat”.

Date de intrare

Fişierul de intrare asort.in conţine pe prima linie un număr natural P; numărul P poate avea doar valoarea 1 sau valoarea 2. A doua linie a fişierului asort.in conţine în această ordine, patru numere naturale N, R, K şi T, separate prin câte un spaţiu.

Date de ieşire

  • Dacă valoarea lui P este 1, atunci se va rezolva numai cerinţa 1. În acest caz, fişierul de ieşire asort.out va conţine pe prima linie un număr natural reprezentând numărul de pe poziţia K din şirul A sortat.
  • Dacă valoarea lui P este 2, atunci se va rezolva numai cerinţa 2. În acest caz, fişierul de ieşire asort.out va conţine pe prima linie două numere naturale, separate printr-un singur spaţiu, reprezentând, în această ordine, predecesorul şi succesorul numărului T.

Restricţii

  • 6 ≤ N ≤ 1 000 000 000
  • 1 ≤ R ≤ 1 000 000 000
  • 1 ≤ K ≤ N şi 1 ≤ T ≤ N
  • Dacă numărul T este situat pe poziţia 1 în şirul asortat, atunci predecesorul lui este numărului de pe poziţia N. Dacă numărul T este situat pe poziţia N în şirul asortat, atunci succesorul lui este numărul de pe poziţia 1.
  • Pentru rezolvarea corectă a cerinţei 1 se acordă 50% din punctaj, iar pentru rezolvarea corectă a cerinţei 2 se acordă 50% din punctaj.
  • Pentru teste în valoare de 15 puncte, N ≤ 1 000 şi R ≤ 1 000

Exemple

asort.inasort.outExplicaţie
1
6 2 3 4
1
Se rezolvă cerinţa 1. N=6, R=2, K=3 şi T=4
                                    X1 X2 X3 X4 X5 X6
Şirul X iniţial                     1  2  3  4  5  6
După prima aplicare a regulii “A”   2  1  4  3  6  5
După a doua aplicare a regulii “A”  5  4  1  6  3  2
În şirul “asortat”, pe poziţia K=3 se află valoarea 1
care se va scrie pe prima linie a fişierului asort.out
2
6 2 3 4
5 1
Se rezolvă cerinţa 2. N=6, R=2, K=3 şi T=4
                                    X1 X2 X3 X4 X5 X6
Şirul X iniţial                     1  2  3  4  5  6
După prima aplicare a regulii “A”   2  1  4  3  6  5
După a doua aplicare a regulii “A”  5  4  1  6  3  2
În şirul “asortat”, predecesorul numărului T=4 este 5,
iar succesorul este 1. Numerele 5 şi 1 se vor scrie pe
prima linie a fişierului asort.out, în această ordine.
Trebuie sa te autentifici pentru a trimite solutii. Click aici