#719
Minime
Pentru a putea ţine evidenţa mai uşor, administratorul unui magazin întocmeşte o listă cu produsele care se găsesc în magazin la începutul zilei. El scrie numele produselor, folosind cuvinte de aceeaşi lungime, formate doar din literele mici ale alfabetului englez. Îndată finalizată lista, el îi asociază un cod reprezentând cel mai mic cuvânt în sens lexicografic, obţinut prin preluarea unei litere din fiecare nume de produs, în ordinea în care acestea au fost scrise pe listă.
El observă că acest cod poate fi obţinut în mai multe moduri. Doreşte însă să identifice varianta în care literele alese sunt cât mai apropiate, altfel spus, distanţa, reprezentând numărul de poziţii, între poziţia cea mai mică şi poziţia cea mai mare pe care sunt plasate caracterele alese, este minimă. De exemplu:
Pentru lista care cuprinde produsele de mai jos:
c | a | i | e | t |
l | a | p | t | e |
m | i | e | r | e |
c | a | f | e | a |
Codul asociat este: aaea
O variantă de obţinere în care distanţa este 4
. Poziţia literei a
din al doilea cuvânt este 2
iar a lui e
, ales în al treilea cuvânt este 5
:
c | a |
i | e | t |
l | a |
p | t | e |
m | i | e | r | e |
c | a |
f | e | a |
Varianta optimă este caracterizată de distanţa 2
. deoarece, poziţia minimă a unui caracter ales este 2
iar cea maximă este 3
:
c | a |
i | e | t |
l | a |
p | t | e |
m | i | e |
r | e |
c | a |
f | e | a |
Scrieţi un program care să determine codul asociat listei de produse şi distanţa minimă prin care poate fi obţinut.
Lot Juniori, Resita, 2012
Problema | Minime | Operații I/O |
minime.in /minime.out
|
---|---|---|---|
Limita timp | 0.6 secunde | Limita memorie |
Total: 4 MB
/
Stivă 2 MB
|
Id soluție | #43303494 | Utilizator | |
Fișier | minime.cpp | Dimensiune | 2.14 KB |
Data încărcării | 18 Aprilie 2023, 16:35 | Scor / rezultat | 20 puncte |
minime.cpp: In function 'int main()': minime.cpp:36:13: warning: unused variable 'ptr' [-Wunused-variable] int ptr = 0; ^
Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
---|---|---|---|---|---|---|
1 | 0 secunde | Raspuns gresit. | 10 | 0 | ||
2 | 0 secunde | Raspuns gresit. | 10 | 0 | ||
3 | 0.16 secunde | OK. | 10 | 10 | ||
4 | 0.032 secunde | Raspuns gresit. | 10 | 0 | ||
5 | 0.024 secunde | OK. | 10 | 10 | ||
6 | 0.064 secunde | Raspuns gresit. | 10 | 0 | ||
7 | Depășit | Limita de timp depășită | 10 | 0 | ||
8 | 0.296 secunde | Raspuns gresit. | 10 | 0 | ||
9 | 0.308 secunde | Raspuns gresit. | 10 | 0 | ||
10 | 0.396 secunde | Raspuns gresit. | 10 | 0 | ||
Punctaj total | 20 |
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Minime face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:
Suma punctajelor acordate pe testele utilizate pentru verificare este 100. Astfel, soluția ta poate obține cel mult 100 de puncte, caz în care se poate considera corectă.