| Fişierul intrare/ieşire: | jucarii.in, jucarii.out | Sursă | Lot Ploiești Juniori 2026, Baraj 2 |
| Autor | Catalin Francu | Adăugată de | |
| Timp execuţie pe test | 0.15 sec | Limită de memorie | 524288 kbytes |
| Scorul tău | N/A | Dificultate | N/A |
Vezi solutiile trimise | Statistici
Jucarii
Un copil are M jucării pe care, fiind copil de informatician, le-a numerotat de la 1 la M. El îşi ţine jucăriile în dulap, în nişte cutii, câte două jucării în fiecare cutie, cu excepţia ultimei cutii, în care stă o singură jucărie dacă M este impar.
Copilul şi-a planificat ordinea în care vrea să se joace diseară cu jucăriile: J1, J2, ..., JN (un vector de N numere naturale între 1 şi M, nu neapărat distincte). Totuşi, camera este mică şi copilul poate scoate din dulap o singură cutie odată. Ori de câte ori jucăria cu care urmează să se joace este în dulap (inclusiv prima dată), el trebuie să
deschidă dulapul, să pună la loc în dulap cutia de afară (dacă există vreo cutie afară), şi abia apoi să scoată cutia cu jucăria dorită. În aşteptarea serii, copilul se hotărăşte să-şi reorganizeze jucăriile în cutii.
Cerinţă
Găsiţi o aşezare a jucăriilor în cutii care să minimizeze numărul de deschideri ale dulapului.
Date de intrare
Fişierul de intrare jucarii.in conţine pe prima linie numerele M şi N, iar pe a doua linie valorile J1, J2, ..., JN, despărţite prin spaţii.
Date de ieşire
În fişierul de ieşire jucarii.out tipăriţi pe prima linie numărul minim de deschideri ale dulapului. Pe a doua linie afişaţi o aşezare optimă în cutii sub forma a M numere, A1, A2, ..., AM, despărţite prin spaţii, cu semnificaţia că:
- Jucăriile cu numerele A1 şi A2 stau în prima cutie.
- Jucăriile cu numerele A3 şi A4 stau în a doua cutie.
- ...
- Dacă M este par, atunci jucăriile AM-1 şi AM stau în ultima cutie.
- Dacă M este impar, atunci jucăria AM stă singură în ultima cutie.
Dacă există mai multe soluţii, afişaţi-o pe oricare.
Restricţii şi precizări
- 3 ≤ M ≤ 20
- 1 ≤ N ≤ 100 000
- 1 ≤ Ji ≤ M pentru orice 1 ≤ i ≤ N
| # | Punctaj | Restricţii |
|---|---|---|
| 1 | 5 | M ≤ 4, 1 ≤ N ≤ 100 |
| 2 | 7 | 5 ≤ M ≤ 7, 100 < N ≤ 3 000 |
| 3 | 11 | 8 ≤ M ≤ 10 |
| 4 | 13 | 11 ≤ M ≤ 13 |
| 5 | 15 | 14 ≤ M ≤ 16 |
| 6 | 49 | Fără restricţii suplimentare |
Exemplu
| jucarii.in | jucarii.out |
|---|---|
| 8 14 1 2 5 3 5 3 7 3 7 3 7 8 7 8 | 7 7 8 5 3 2 1 4 6 |
Explicaţie
Copilul grupează jucăriile 7 cu 8, 5 cu 3, 2 cu 1, 4 cu 6. Apoi deschide dulapul de 7 ori, astfel:
- Scoate cutia (2, 1), se joacă cu 1, 2.
- Scoate cutia (5, 3), se joacă cu 5, 3, 5, 3.
- Scoate cutia (7, 8), se joacă cu 7.
- Scoate cutia (5, 3), se joacă cu 3.
- Scoate cutia (7, 8), se joacă cu 7.
- Scoate cutia (5, 3), se joacă cu 3.
- Scoate cutia (7, 8), se joacă cu 7, 8, 7, 8.
