Atenţie! Aceasta este o versiune veche a paginii, scrisă la 2014-11-17 21:05:24.
Revizia anterioară   Revizia următoare  

 

Fişierul intrare/ieşire:tdeque.in, tdeque.outSursăFMI No Stress 5
AutorTeodor PlopAdăugată defmins123FMI No Stress fmins123
Timp execuţie pe test0.05 secLimită de memorie20480 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

TDeque

Se dă o permutare de ordin N. Aveti la dispoziţie o structură de date care poartă numele de TDeque şi permite următoarele operaţii:

  • 1. pushNext, care adaugă în capătul din dreapta al structurii următorul element din permutare, dacă acesta există.
  • 2. frontToBack, care mută elementul din capătul din dreapta al structurii în capătul din stânga.
  • 3. backToFront, care mută elementul din capătul din stânga al structurii în capătul din dreapta.

Se doreşte sortarea crescătoare a elementelor din permutarea dată, folosind structura de date prezentată mai sus.

De exemplu, dacă avem permutarea 1 3 2 5 4, o modalitate de a sorta această permutare este aplicarea următoarelor operaţii:

  • 0. Iniţial, structura este goală: ()
  • 1. pushNext, structura devine: (1)
  • 2. pushNext, structura devine: (1, 3)
  • 3. frontToBack, structura devine: (3, 1)
  • 4. pushNext, structura devine: (3, 1, 2)
  • 5. backToFront, structura devine: (1, 2, 3)
  • 6. pushNext, structura devine: (1, 2, 3, 5)
  • 7. fronToBack, structura devine: (5, 1, 2, 3)
  • 8. pushNext, structura devine: (5, 1, 2, 3, 4)
  • 9. backToFront, structura devine: (1, 2, 3, 4, 5)

Sa se afişeze numărul de operaţii necesare pentru a sorta permutarea precum şi operaţiile care trebuiesc efectuate.

Date de intrare

Fişierul de intrare tdeque.in conţine pe prima linie numărul natural N, iar pe cea de-a doua linie N numere naturale distincte cu valori între 1 şi N, reprezentând permutarea de ordin N din enunţul problemei.

Date de ieşire

În fişierul de ieşire tdeque.out se va găsi pe prima linie un număr M, reprezentând numărul de operaţii efectuate pentru a sorta permutarea. Pe cea de-a doua linie se vor găsi exact M caractere, reprezentând operaţiile efectuate. Al i-lea caracter va fi 1 dacă operaţia i este de tip pushNext, 2 daca operaţia este de tip frontToBack sau 3 dacă este de tip backToFront.

Restricţii

  • 1 ≤ N ≤ 500
  • Veţi primi 50% din punctaj dacă soluţia voastră este corectă iar numărul de operaţii efectuate este ≤ 1.000.000
  • Veţi primi încă 50% din punctaj dacă soluţia voastră este corectă iar numărul de operaţii efectuate este minimul posibil pentru acele date de intrare.

Exemplu

tdeque.intdeque.out
This is some
text written on
multiple lines.
This is another
text written on
multiple lines.

Explicaţie

...

Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?