ConcursC++17

scara

Avem NN persoane notate cu etichetele 1,2,...,N1,2,...,N, într-o ordine oarecare și o scară cu NN trepte. Persoanele sunt așezate în șir indian, cu fața spre locul unde se află scara. Treptele scării sunt inițial neocupate. În mod repetat persoana aflată la acel moment la capătul din dreapta al șirului se poziționează pe scară pe prima treaptă neocupată, iar fiecare dintre persoanele aflate pe treptele inferioare coboară de pe scară și se repoziționează la capătul din dreapta al șirului, începând cu cea de la prima treaptă a scării. Acțiunea se oprește atunci când sunt ocupate toate treptele pe scară.

Exemplu: Inițial la etapa 0 avem sir=(4,2,1,3)(4,2,1,3) și scara=(0,0,0,0)(0,0,0,0)

Etapa 11: (4,2,1)/(3,0,0,0)(4,2,1)/(3,0,0,0)
Etapa 22: (4,2,3)/(0,1,0,0)(4,2,3)/(0,1,0,0)
Etapa 33: (4,2)/(3,1,0,0)(4,2)/(3,1,0,0)
Etapa 44: (4,3,1)/(0,0,2,0)(4,3,1)/(0,0,2,0)
Etapa 55: (4,3)/(1,0,2,0)(4,3)/(1,0,2,0)
Etapa 66: (4,1)/(0,3,2,0)(4,1)/(0,3,2,0)
Etapa 77: (4)/(1,3,2,0)(4)/(1,3,2,0)
Etapa 88: (1,3,2)/(0,0,0,4)(1,3,2)/(0,0,0,4)
...
Final: ()/(3,2,1,4)()/(3,2,1,4)

Cerinţă

Se cere să se afișeze etichetele persoanelor în ordinea în care acestea sunt așezate pe scară la final

Date de intrare

În fişierul de intrare scara.in se află scris pe prima linie numărul NN. Pe a doua linie se află scrise NN numere naturale separate prin câte un spaţiu, reprezentând etichetele celor NN persoane, în ordinea inițială din șir, de la stânga spre dreapta.

Date de ieșire

În fişierul de ieşire scara.out vor fi scrise pe prima linie și separate prin câte un spațiu cele NN numere naturale reprezentând etichetele persoanelor corespunzătoare așezării pe scară.

Restricții și precizări

  • 1≤N≤2 0001 \leq N \leq 2 \ 000;
  • Pentru 2222 puncte N≤15N \leq 15.

Exemplul 1

scara.in

4
4 2 1 3

scara.out

3 2 1 4 

Explicație

(4,2,1,3)/(0,0,0,0)(4,2,1,3)/(0,0,0,0),
(4,2,1)/(3,0,0,0)(4,2,1)/(3,0,0,0),
(4,2,3)/(0,1,0,0)(4,2,3)/(0,1,0,0),
(4,2)/(3,1,0,0)(4,2)/(3,1,0,0)
(4,3,1)/(0,0,2,0)(4,3,1)/(0,0,2,0)
(4,3)/(1,0,2,0)(4,3)/(1,0,2,0),
(4,1)/(0,3,2,0)(4,1)/(0,3,2,0),
(4)/(1,3,2,0)(4)/(1,3,2,0),
(1,3,2)/(0,0,0,4)(1,3,2)/(0,0,0,4),
(1,3)/(2,0,0,4)(1,3)/(2,0,0,4),
(1,2)/(0,3,0,4)(1,2)/(0,3,0,4),
(1)/(2,3,0,4)(1)/(2,3,0,4),
(2,3)/(0,0,1,4)(2,3)/(0,0,1,4),
(2)/(3,0,1,4)(2)/(3,0,1,4),
(3)/(0,2,1,4)(3)/(0,2,1,4),
()/(3,2,1,4)()/(3,2,1,4).

Exemplul 2

scara.in

3
2 3 1

scara.out

3 1 2

Explicație

(2,3,1)/(0,0,0)(2,3,1)/(0,0,0),
(2,3)/(1,0,0)(2,3)/(1,0,0),
(2,1)/(0,3,0)(2,1)/(0,3,0),
(2)/(1,3,0)(2)/(1,3,0),
(1,3)/(0,0,2)(1,3)/(0,0,2),
(1)/(3,0,2)(1)/(3,0,2),
(3)/(0,1,2)(3)/(0,1,2),
()/(3,1,2)()/(3,1,2)

Sursă și autori

ONI 2019, clasele 10. Ionel-Vasile Piț-Rada.

Enunț din Kilonova, sub licența CC-BY-NC-SA-4.0, conform politicii sursei. Adaptări de prezentare și tipografie. Exemplele, formulele și figurile originale sunt păstrate.

RÂNDUL TĂU

Trimite o soluție

Editor de cod

Setul original de teste și regulile de punctare sunt în curs de verificare. Trimiterea pentru evaluare va fi disponibilă după această verificare.

Se verifică autentificarea…

Un pas, apoi următorul.Înapoi sus ↑