#728
Triburi
Ionel este mare pasionat al jocului Triburile. Ideea jocului este aceea că fiecare jucător deţine la un moment dat câteva sate dintr-o zonă şi încearcă să domine acea zonă cucerind satele deţinute în respectiva zonă de alţi jucători. Ionel a ajuns să deţină foarte multe sate şi îi este din ce în ce mai greu să-şi organizeze atacurile.
În acest moment el are n
sate, numerotate de la 1
la n
, şi urmează să organizeze atacuri coordonate asupra satelor duşmane. Ionel cunoaşte cât timp face armata din fiecare sat al său până la fiecare sat inamic.
Ionel a ales două sate inamice X
şi Y
pe care vrea să le atace. El s-a gândit la următorul scenariu: selectează k
sate diferite ale sale şi trimite toate armatele din ele la atac asupra unuia dintre cele două sate inamice. Toate cele k
atacuri trebuie să fie coordonate, adică toate trupele provenind din cele k
sate trebuie să sosească în satul atacat exact la aceeaşi oră (pentru aceasta, ele pot pleca la momente diferite de timp). Se ştie că în urma acestui atac supravieţuiesc din fiecare sat al lui Ionel suficiente trupe care se întorc în satul de unde provin şi pot participa la un nou atac. Ionel va selecta apoi din nou k
sate de-ale sale, printre care pot fi şi sate care au participat la primul atac, şi va lansa ofensiva asupra celuilalt sat inamic. Şi de data aceasta armatele provenind de la cele k
sate trebuie sa ajungă în acelaşi timp la obiectivul pe care îl atacă.
Ionel doreşte ca timpul scurs de la plecarea primei armate până la momentul sosirii armatelor în cel de al doilea sat atacat să fie cât mai scurt, pentru a putea surprinde în felul acesta inamicul.
Vom considera că prima armată a lui Ionel va pleca la atac la ora 00:00
, şi toate cele 2k
atacuri îşi vor atinge ţinta cel târziu la ora 23:59
a aceleiaşi zile.
Timpul necesar revenirii unei armate în satul de origine după atacul asupra unui sat inamic este egal cu timpul necesar deplasării din satul de origine spre respectivul sat atacat, iar atacul este instantaneu (nu consumă timp).
Se cere să se determine ora la care ajung trupele în cel de al doilea sat atacat, conform cerinţelor de mai sus.
Problema | Triburi | Operații I/O |
triburi.in /triburi.out
|
---|---|---|---|
Limita timp | 0.1 secunde | Limita memorie |
Total: 16 MB
/
Stivă 8 MB
|
Id soluție | #50207589 | Utilizator | |
Fișier | triburi.cpp | Dimensiune | 2.78 KB |
Data încărcării | 31 Martie 2024, 20:41 | Scor / rezultat | 100 puncte |
triburi.cpp: In function 'int main()': triburi.cpp:14:38: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen("triburi.in", "r", stdin); ^ triburi.cpp:15:40: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen("triburi.out", "w", stdout); ^ triburi.cpp:17:29: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d %d\n", &N, &K); ^ triburi.cpp:20:51: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d %d %d %d\n", &h1, &m1, &h2, &m2); ^
Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
---|---|---|---|---|---|---|
1 | 0 secunde | OK. | 10 | 10 | ||
2 | 0 secunde | OK. | 10 | 10 | ||
3 | 0.02 secunde | OK. | 10 | 10 | ||
4 | 0 secunde | OK. | 10 | 10 | ||
5 | 0 secunde | OK. | 10 | 10 | ||
6 | 0.012 secunde | OK. | 10 | 10 | ||
7 | 0 secunde | OK. | 10 | 10 | ||
8 | 0 secunde | OK. | 10 | 10 | ||
9 | 0 secunde | OK. | 10 | 10 | ||
10 | 0 secunde | OK. | 10 | 10 | ||
Punctaj total | 100 |
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Triburi 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ă.