Una din cele mai noi pasiuni ale lui Zăhărel este să studieze diverse proprietăţi ale permutărilor. De exemplu, este interesat de permutările în care cel mai lung subşir crescător şi cel mai lung subşir descrescător au lungimi date.
Cerință
Să se scrie un program care determină o permutare de lungime în care cel mai lung subşir crescător are lungime şi cel mai lung subşir descrescător are lungime .
Date de intrare
Fişierul de intrare ab.in
va conţine pe prima linie numerele .
Date de ieșire
Fişierul de ieşire ab.out
va conţine pe prima linie numere separate prin câte un spaţiu, reprezentând o permutare care respectă condiţiile de mai sus.
Dacă există mai multe soluţii, se va afişa cea minimă din punct de vedere lexicografic.
Restricții și precizări
- Se garantează că mereu există soluţie pentru datele de intrare
- Se numeşte subşir al şirului , un şir cu proprietatea
- Un şir ( este mai mic din punct de vedere lexicografic decat un alt şir dacă există o poziţie , astfel încat și ,
- Pentru un test se va acorda din punctaj dacă permutarea afişată are cel mai lung subşir crescător de lungime şi cel mai lung subşir descrescător de lungime , dar nu este minimă lexicografic
Exemplu
ab.in
4 2 3
ab.out
1 4 3 2
Explicație
Cel mai lung subşir crescător are lungime sau , iar cel mai lung subşir descrescător are lungime .
O altă soluţie posibilă este , dar aceasta nu este minimă din punct de vedere lexicografic.