jucarii

Time limit: 0.15s Memory limit: 512MB Input: jucarii.in Output: jucarii.out

Un copil are NN jucării pe care, fiind copil de informatician, le-a numerotat de la 11 la NN. 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ă NN este impar.

Copilul și-a planificat ordinea în care vrea să se joace diseară cu jucăriile: a1,a2,,aMa_1, a_2, \ldots, a_M (un vector de MM numere naturale între 11 și NN, 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 NN și MM, iar pe a doua linie valorile a1 a2  aMa_1 \ a_2 \ \ldots \ a_M, 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 NN numere, p1 p2  pNp_1 \ p_2 \ \ldots \ p_N, despărțite prin spații, cu semnificația că:

  • Jucăriile cu numerele p1p_1 și p2p_2 stau în prima cutie.
  • Jucăriile cu numerele p3p_3 și p4p_4 stau în a doua cutie.
  • \ldots
  • Dacă NN este par, atunci jucăriile pN1p_{N-1} și pNp_N stau în ultima cutie.
  • Dacă NN este impar, atunci jucăria pNp_N stă singură în ultima cutie.

Dacă există mai multe soluții, afișați-o pe oricare.

Restricții și precizări

  • 3N203 \leq N \leq 20;
  • 1M100 0001 \leq M \leq 100 \ 000;
  • 1aiN1 \leq a_i \leq N pentru orice 1iM1 \leq i \leq M.
# Punctaj Restricții
1 5 N4N \leq 4, 1M1001 \leq M \leq 100
2 7 5N75 \leq N \leq 7, 100<M3 000100 < M \leq 3 \ 000
3 11 8N108 \leq N \leq 10
4 13 11N1311 \leq N \leq 13
5 15 14N1614 \leq N \leq 16
6 49 Fără restricții suplimentare

Exemplu

jucarii.in

8 14
1 2 5 3 5 3 7 3 7 3 7 8 7 8

jucarii.out

7
7 8 5 3 2 1 4 6

Explicație

Copilul grupează jucăriile 77 cu 88, 55 cu 33, 22 cu 11, 44 cu 66. Apoi deschide dulapul de 77 ori, astfel:

  • Scoate cutia (2,1)(2, 1), se joacă cu 11, 22.
  • Scoate cutia (5,3)(5, 3), se joacă cu 55, 33, 55, 33.
  • Scoate cutia (7,8)(7, 8), se joacă cu 77.
  • Scoate cutia (5,3)(5, 3), se joacă cu 33.
  • Scoate cutia (7,8)(7, 8), se joacă cu 77.
  • Scoate cutia (5,3)(5, 3), se joacă cu 33.
  • Scoate cutia (7,8)(7, 8), se joacă cu 77, 88, 77, 88.

Log in or sign up to be able to send submissions!