concurs

Time limit: 0.1s Memory limit: 2MB Input: concurs.in Output: concurs.out

La un concurs de desene pe calculator participă nn elevi, numerotaţi de la 11 la nn. Elevii se prezintă în ordinea 11, 22, 33, \dots, nn. 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 nn 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 nn reprezentând numărul de elevi din concurs şi apoi, nn numere naturale reprezentând locurile în clasament anunţate de comisie pentru cei nn elevi, în ordinea prezentării (mai întâi pentru elevul 11, apoi pentru elevul 22, \dots).

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

  • nn este un număr natural, 1<n<301 < n < 30;
  • cele nn numere citite sunt corecte: numere naturale, de la 11 la nn şi fiecare număr nu poate fi mai mare decât poziţia sa în şir (elevul al ii-lea nu poate ocupa (imediat după prezentarea sa) un loc mai mare decât ii)
  • fiecare elev care a fost anunţat că ocupă locul 11, 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ă 60%60\% din punctaj, iar pentru a doua cerinţă din enunţ se acordă 40%40\% 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: 11;
  • după al doilea elev, clasamentul este: 22, 11;
  • după al treilea elev, clasamentul este: 22, 11, 33;
  • după al patrulea elev, clasamentul este: 44, 22, 11, 33;
  • după al cincilea elev, clasamentul este: 44, 55, 22, 11, 33.
    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 22 a condus în etapele 22 şi 33, iar elevul 44 în etapele 44 şi 55.

Exemplul 2

concurs.in

3
1 1 1

concurs.out

3 2 1 
1 2 3

Explicație

  • După primul elev clasamentul este 11;
  • După al doilea elev clasamentul este 22, 11;
  • După al treilea elev clasamentul este 33, 22, 11;
    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.

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