În armată, o companie este alcătuită din soldaţi. La inspecţia de dimineaţă soldaţii stau aliniaţi în linie dreaptă în faţa căpitanului. Acesta nu e mulţumit de ceea ce vede; e drept că soldaţii sunt aşezaţi în ordinea numerelor de cod , din registru, dar nu în ordinea înălţimii. Căpitanul cere câtorva soldaţi să iasă din rând, astfel ca cei rămaşi, fără a-şi schimba locurile, doar apropiindu-se unul de altul (pentru a nu rămâne spaţii mari între ei) să formeze un şir în care fiecare soldat vede privind de-a lungul şirului, cel puţin una din extremităţi (stânga sau dreapta). Un soldat vede o extremitate dacă între el şi capătul respectiv nu există un alt soldat cu înălţimea mai mare sau egală ca a lui.
Cerinţă
Scrieţi un program care determină, cunoscând înălţimea fiecărui soldat, numărul minim de soldaţi care trebuie să părăsească formaţia astfel ca şirul rămas să îndeplinească condiţia din enunţ.
Date de intrare
Pe prima linie a fişierului de intrare aliniere.in
este scris numărul al soldaţilor din şir, iar pe linia următoare un şir de numere reale, cu maximum zecimale fiecare şi separate prin spaţii. Al -lea număr de pe această linie reprezintă înălţimea soldatului cu codul .
Date de ieșire
Fişierul aliniere.out
va conţine pe prima linie numărul soldaţilor care trebuie să părăsească formaţia, iar pe linia următoare codurile acestora în ordine crescătoare, separate două câte două printr-un spaţiu. Dacă există mai multe soluţii posibile, se va scrie una singură.
Restricții și precizări
- înălţimile sunt numere reale în intervalul
Exemplu
aliniere.in
8
1.86 1.86 1.30621 2 1.4 1 1.97 2.2
aliniere.out
4
1 3 7 8
Explicație
Rămân soldaţii cu codurile , , , având înălţimile , , , .
Soldatul cu codul vede extremitatea stângă.
Soldatul cu codul vede ambele extremităţi.
Soldaţii cu codurile şi văd extremitatea dreaptă.