#2355
card
În orașul Imios se află n
galerii ce au locații interesante de vizitat (muzee, expoziții, castele), notate de la 1
la n
. O galerie conține m
locații, notate de la 1
la m
. Fiecare locație are atribuit un număr de puncte, unic ca valoare. Orașul are multe birouri de informare turistică, de unde turiștii pot cumpăra un card de o zi pentru vizitarea locațiilor. Pe fiecare card se înregistrează punctul de plecare, notat prin 2
numere: numărul galeriei și cel al locației, din care se pot vizita cel mult k
locații din oraș, diferite de punctul de plecare. Cardul are înregistrat un număr de puncte, ce vor fi utilizate în locațiile vizitate. Alegând o locație ce are x
puncte, turistul poate selecta 4
categorii de vizitare, ce modifică punctele de pe card astfel:
x
x/2
punctex
punctex
puncte.Alexandru a cumpărat un card și dorește să viziteze cât mai puține locații și să utilizeze toate punctele de pe card. Împreună cu cardul, a primit o hartă electronică a locațiilor din oraș, codificată printr-o matrice h
, având n
linii și m
coloane, pe care este înregistrat numărul de puncte al fiecărei locații. Pe hartă, punctul de plecare, înregistrat pe card, conține numărul de puncte disponibile pe card pentru vizitare. A fost informat că după vizitarea unei locații, se poate deplasa numai într-o locație vecină cu aceasta în cele 8
direcții (N
, NE
, E
, SE
, S
, SV
, V
, NV
). Fiecare locație poate fi vizitată o singură dată, pe baza cardului. Alexandru a decis că dacă are mai multe variante posibile de vizitare, din care să aleagă, va opta pentru acea variantă în care ultima locație are cel mai mic număr de puncte. Dacă există mai multe variante de vizitare care au același număr minim de puncte pentru ultima locație, va opta pentru varianta în care prima locație are cel mai mic număr de puncte. Două variante de vizitare diferă prin: locațiile lor, ordinea locațiilor vizitate și categorii de vizitare alese pentru locații.
Să se scrie un program care obține numărul de variante posibile de vizitare a unor locații din oraș, care conțin cât mai puține locații vizitate din punctul de plecare, ce asigură utilizarea tuturor punctelor de pe card și lista punctelor din locațiile vizitate, în ordinea vizitării lor, pentru varianta pe care Alexandru o alege.
Olimpiada Municipala de Informatica, Iasi, 2018
Problema | card | Operații I/O |
![]() card.in /card.out
|
---|---|---|---|
Limita timp | 3 secunde | Limita memorie |
Total: 32 MB
/
Stivă 8 MB
|
Id soluție | #48877806 | Utilizator | |
Fișier | card.cpp | Dimensiune | 3.23 KB |
Data încărcării | 08 Februarie 2024, 09:22 | Scor / rezultat | 100 puncte |
Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
---|---|---|---|---|---|---|
0 | 0 secunde | OK. | 10 | 10 | ||
1 | 0 secunde | OK. | 10 | 10 | ||
2 | 0.056 secunde | OK. | 10 | 10 | ||
3 | 0.004 secunde | OK. | 10 | 10 | ||
4 | 0.096 secunde | OK. | 10 | 10 | ||
5 | 0.096 secunde | OK. | 10 | 10 | ||
6 | 0.1 secunde | OK. | 10 | 10 | ||
7 | 0.08 secunde | OK. | 10 | 10 | ||
8 | 0.096 secunde | OK. | 10 | 10 | ||
9 | 0.1 secunde | OK. | 10 | 10 | ||
Punctaj total | 100 |
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema card 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ă.