La un concurs de desene pe calculator participă elevi, numerotaţi de la la . Elevii se prezintă în ordinea , , , , . Fiecare elev prezintă câte un desen care este evaluat şi comisia îi acordă un punctaj. Aceasta este o etapă. În funcţie de acest punctaj şi de punctajele acordate până în momentul respectiv, se stabileşte un clasament provizoriu. Fiecare concurent este anunţat imediat după prezentarea desenului său, care este locul pe care îl ocupă în clasamentul provizoriu. Desenele sunt evaluate astfel încât nu există două lucrări cu acelaşi punctaj.
Cerinţe:
Cunoscându-se numărul de elevi şi locurile anunţate de comisie pentru fiecare elev (în ordinea prezentării în concurs), scrieţi un program care determină:
- Clasamentul final al elevilor.
- Care dintre concurenţi au condus în clasament cel mai mult timp (mai multe etape)
Date de intrare
Se citeşte din fișierul de intrare concurs.in
numărul natural reprezentând numărul de elevi din concurs şi apoi, numere naturale reprezentând locurile în clasament anunţate de comisie pentru cei elevi, în ordinea prezentării (mai întâi pentru elevul , apoi pentru elevul , ).
Date de ieșire
- pe prima linie a fișierului de ieșire
concurs.out
se vor scrie numerele de ordine ale elevilor, începând cu primul clasat; numerele se separă cu un spaţiu; - pe a doua linie se trece numărul de ordine al elevului ce a ocupat primul loc cel mai mult timp; dacă sunt mai mulţi elevi în această situaţie, se vor afişa numerele de ordine ale acestora, separate prin spaţiu, în ordine crescătoare.
Restricții și precizări
- este un număr natural, ;
- cele numere citite sunt corecte: numere naturale, de la la şi fiecare număr nu poate fi mai mare decât poziţia sa în şir (elevul al -lea nu poate ocupa (imediat după prezentarea sa) un loc mai mare decât )
- fiecare elev care a fost anunţat că ocupă locul , va conduce în clasament cel puţin o etapă, chiar dacă este ultimul elev intrat în concurs (vezi exemplul al doilea)
- se vor acorda punctaje parţiale astfel: pentru afişarea întregului clasament final se acordă încă din punctaj, iar pentru a doua cerinţă din enunţ se acordă din punctaj.
Exemplul 1
concurs.in
5
1 1 3 1 2
concurs.out
4 5 2 1 3
2 4
Explicație
- După primul elev, clasamentul este: ;
- după al doilea elev, clasamentul este: , ;
- după al treilea elev, clasamentul este: , , ;
- după al patrulea elev, clasamentul este: , , , ;
- după al cincilea elev, clasamentul este: , , , , .
Pe prima linie este afişat clasamentul final, iar pe a doua linie sunt afişate numerele de ordine ale celor doi concurenţi care au condus clasamentul timp de cele mai multe etape: elevul a condus în etapele şi , iar elevul în etapele şi .
Exemplul 2
concurs.in
3
1 1 1
concurs.out
3 2 1
1 2 3
Explicație
- După primul elev clasamentul este ;
- După al doilea elev clasamentul este , ;
- După al treilea elev clasamentul este , , ;
Fiecare elev a condus un număr maxim de etape, adică o etapă, şi de aceea se afişează numerele de ordine ale tuturor concurenţilor.