Fişierul intrare/ieşire:cursaf12.in, cursaf12.outSursăTestare IQ Academy 2021
AutorMihai TutuAdăugată demihai.tutuMihai Tutu mihai.tutu
Timp execuţie pe test0.55 secLimită de memorie350 kbytes
Scorul tăuN/ADificultatenormalnormalnormalnormalnormal

Vezi solutiile trimise

Cursa Formula 1 2 (clasa a 7-a)

Marele Premiu de Formula 1 de la Monte Carlo era transmis în direct la TV, când transmisiunea a fost brusc întreruptă. Pentru a umple golul de emisie, postul TV a lăsat pe ecran informaţiile strânse până acum:

  • Numărul total de ture ale cursei, notat cu y
  • Numărul de ture parcurse, notat cu x
  • Numărul piloţilor ce participă la cursă, notat cu n
  • Numele fiecărui pilot şi timpul t de pe fiecare tură parcursă până la momentul întreruperii transmisiunii, obţinut de acesta, redat cu litere mici şi mari

Între timp, prietenul tău, Bogdan, a venit în vizită. Neştiind sportul, a început să te întrebe tot felul de lucruri la care tu trebuie să răspunzi.

Cerinţă

Având la dispoziţie informaţiile oferite mai sus, răspunde-i lui Bogdan la următoarele întrebări:

1) Care este numele pilotului cu cel mai rapid tur, dintre cele x ture parcurse deja?
2) Care este numele pilotului cu cel mai lent tur, din turul k? Turul k va fi întotdeauna unul dintre cele x ture deja parcurse.
3) Presupunând că în turele rămase, fiecare pilot scoate exact aceiaşi timpi, în aceeaşi ordine precum turele x deja parcurse, să se afişeze clasamentul final al cursei, cu poziţie şi numele complet al pilotului.

Date de intrare

Fişierul de intrare cursaf12.in este descris astfel:

Pe prima linie vor fi 5 numere: cerinţa c, numărul total de ture din cursă y, numărul de ture parcurse de piloţi x, numărul piloţilor n, şi turul k, necesar cerinţei 2.

Pe linia următoare este afişat numele complet al pilotului şi apoi pe fiecare linie în parte, fiecare timp t obţinut de pilot, aferent turului parcurs. Timpul t este exprimat în formatul minute . secunde (de exemplu: 1.15 înseamnă 1 minut şi 15 secunde). Vor fi mai multe astfel de grupuri de informaţii, atâtea câţi piloţi sunt în cursă.

Toate testele vor avea conţinutul descris mai sus, indiferent de cerinţă.

Date de ieşire

În fişierul de ieşire cursaf12.out informaţile trebuie afişate astfel:

  • pentru prima cerinţă, se va afişa numele complet al pilotului cu turul cel mai rapid, exact aşa cum este dat în fişierul de intrare. Dacă sunt mai mulţi piloţi cu acelaşi timp, se va afişa primul găsit în lista dată în fişierul de intrare.
  • pentru cerinţa a doua, se va afişa numele complet al pilotului cu timpul cel mai lent din turul k. Dacă sunt mai mulţi piloţi cu acelaşi timp, se va afişa primul găsit în lista dată în fişierul de intrare.
  • pentru cerinţa a treia se va afişa clasamentul final al cursei. Aceasta reprezintă o listă a piloţilor, redată în ordinea în care au terminat cursa, adică în ordinea crescătoare a timpului total. Formatul de afişare este următorul: poziţia exprimată în număr de ordine, un punct şi un spaţiu, şi apoi numele complet al pilotului. Numele fiecărui pilot va fi scris complet pe o singură linie (exemplu: 1. Charles Leclerc). Dacă sunt mai mulţi piloţi care au acelaşi timp, aceştia se vor afişa în ordine lexicografică (asemenătoare ordinii pe care o regăsiţi în dicţionar).

Restricţii

  • 1 ≤ n ≤ 100
  • 1 ≤ kxy ≤ 20000 (exista curse de anduranţă :) )
  • 0 minute ≤ t ≤ 30 minute
  • numele piloţilor au cel mult 100 de caractere (inclusiv spaţiile dintre nume)
  • fiecare linie din fişierul de intrare se termină cu caracterul '\n'
  • fişierul de intrare se termină cu caracterul '\n'
  • pentru cerinţele 1 şi 2 se va afişa primul pilot din fişierul de intrare care respectă condiţiile corespunzătoare

Exemplu

cursaf12.incursaf12.outExplicaţie
1 60 2 2 1
Charles Leclerc
1.25
1.25
Lewis Hamilton
1.27
1.22
Lewis Hamilton
Cerinţa 1, cursa completă de 60 de ture dintre care doar 2 au fost transmise şi există date despre ele.
Sunt 2 piloţi. Ignorăm turul k = 1, întrucât acesta este necesar la cerinţa 2.
Fiecare pilot are 2 timpi, aferenţi turelor parcurse.
Lewis Hamilton are timpul cel mai rapid pe tur, 1.22.
2 60 2 2 1
Charles Leclerc
1.25
1.25
Lewis Hamilton
1.27
1.22
Lewis Hamilton
Cerinţa 2, cursa completă de 60 de ture dintre care doar 2 au fost transmise şi există date despre ele.
Sunt 2 piloţi. Analizăm doar turul k = 1.
Fiecare pilot are 2 timpi, aferenţi turelor parcurse. Vom analiza doar turul 1 pentru fiecare pilot.
Lewis Hamilton are timpul cel mai lent pe turul 1, 1.27.
3 60 2 2 1
Charles Leclerc
1.25
1.25
Lewis Hamilton
1.27
1.22
1. Lewis Hamilton
2. Charles Leclerc
Cerinţa 3, cursa completă de 60 de ture dintre care doar 2 au fost transmise şi există date despre ele.
Sunt 2 piloţi. Ignorăm turul k = 1, întrucât acesta este necesar la cerinţa 2.
Fiecare pilot are 2 timpi, aferenţi turelor parcurse.
Charles Leclerc a terminat cursa în 85 minute (a făcut pe fiecare tur exact 1.25), iar
Lewis Hamilton a terminat 84 minute şi 30 secunde (pe turul 1 a făcut 1.27, pe turul 2 a făcut 1.22,
pe turul 3 a făcut 1.27, pe turul 4 a făcut 1.22, pe turul 5 a făcut 1.27, pe turul 6 a făcut 1.22
şi tot aşa, în cele 60 de ture).
3 7 2 2 1
Charles Leclerc
1.25
1.25
Lewis Hamilton
1.27
1.22
1. Lewis Hamilton
2. Charles Leclerc
Cerinţa 3, cursa completă de 7 de ture dintre care doar 2 au fost transmise şi există date despre ele.
Sunt 2 piloţi. Ignorăm turul k = 1, întrucât acesta este necesar la cerinţa 2.
Fiecare pilot are 2 timpi, aferenţi turelor parcurse.
Charles Leclerc a terminat cursa în 9 minute şi 55 secunde (a făcut pe fiecare tur exact 1.25), iar
Lewis Hamilton a terminat 9 minute şi 54 secunde.
Pe turul 1 a făcut 1.27, adică primul timp din cele două înregistrate.
Pe turul 2 a făcut 1.22, adică al doilea timp din cele înregistrate. 
Pe turul 3 a făcut 1.27, pe turul 4 a făcut 1.22, pe turul 5 a făcut 1.27, pe turul 6 a făcut 1.22.
Pe turul 7 a făcut 1.27, adică primul tur din cele două înregistrate.
Pentru că după 7 ture cursa s-a terminat, nu se mai continuă adunarea celui de-al doilea timp
din lista timpilor înregistraţi.
Trebuie sa te autentifici pentru a trimite solutii. Click aici