#4145
CFR
C++
RAU-Gigel se joacă cu noul său set de cale ferată, primit cadou de ziua lui anul acesta. Setul conține N
gări distincte din diverse orașe reprezentative ale României (București, Iași, Sebeș, …), numerotate în continuare, pentru simplitate, cu numere de la 1
la N
și N – 1
bucăți de șină care pot conecta între ele câte două gări distincte date (conexiunea este bidirecțională) astfel încât folosind aceste șine există un drum unic alcătuit din șine între oricare două gări distincte. Ca orice jucărie, fiecare din cele N – 1
bucăți de șină are un grad de periculozitate asociat acesteia, o valoare exprimată printr-un număr natural nenul (nimeni nu este perfect până la urmă, nici jucăriile), pentru a ști de la ce vârsta ar fi bine să poată fi folosite de copii, de exemplu. De asemenea, toate bucățile de șină au aceeași lungime constantă, de o unitate.
RAU-Gigel își desfășoară joaca pe parcursul a Q
zile și în fiecare zi este supravegheat de câte un membru al familiei pentru a fi în siguranță. Din nefericire pentru el, în fiecare din cele Q
zile persoana care îl supraveghează îi încurcă puțin planurile, permițându-i să folosească doar șinele care au gradul de periculozitate cel mult M
(inclusiv M
), o valoare naturală nenulă aleasă de aceasta (de remarcat că poate mereu folosi toate gările). Astfel, folosind toate șinele pe care le are la dispoziție pentru a conecta între ele gările corespunzătoare, va obține una sau mai multe așezări conexe maximale de gări (există un drum unic alcătuit din șine între oricare două gări distincte dintr-o așezare) pe care le va numi în continuare orașe. În fiecare astfel de zi, personajul nostru principal primește de la persoana care îl supraveghează un număr natural nenul K
de bucăți de șină considerate perfect sigure pentru joaca copilului de către respectivul supraveghetor, cu care poate conecta oricare două gări distincte dorește. De asemenea, șinele primite îi sunt luate la finalul zilei (poate că persoana respectivă mai supraveghează și alți copii în următoarele zile și mai are nevoie de ele).
RAU-Gigel consideră că un lanț este un șir de una sau mai multe gări distincte astfel încât oricare două gări adiacente din acesta sunt conectate de exact o șină, iar lanțul de lungime maximă este cel format dintr-un număr maxim de bucăți de șină (astfel, lungimea unui lanț este dată de numărul de bucăți de șină din care este alcătuit). Scopul acestuia este ca în fiecare zi să formeze un singur lanț cât mai lung având la dispoziție șinele primite de la supraveghetor și cel mult câte un lanț din fiecare oraș creat de acesta, la alegere (adică pentru fiecare oraș poate să aleagă exact un lanț din el (oricare dorește) sau să nu folosească niciun lanț din acel oraș).
RAU-Coder 2022
Problema | CFR | Operații I/O |
cfr.in /cfr.out
|
---|---|---|---|
Limita timp | 1 secunde | Limita memorie |
Total: 64 MB
/
Stivă 8 MB
|
Id soluție | #43594535 | Utilizator | |
Fișier | cfr.cpp | Dimensiune | 6.00 KB |
Data încărcării | 04 Mai 2023, 23:13 | Scor / rezultat | 40 puncte |
cfr.cpp: In member function 'AINT::node AINT::update(int, int, int, int, int)': cfr.cpp:120:18: warning: suggest parentheses around '+' inside '>>' [-Wparentheses] int m=(st+dr>>1); ^ cfr.cpp: In member function 'void AINT::query(int, int, int)': cfr.cpp:133:18: warning: suggest parentheses around '+' inside '>>' [-Wparentheses] int m=(st+dr>>1); ^ cfr.cpp: At global scope: cfr.cpp:289:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type] main() ^ cfr.cpp: In member function 'char InParser::read_ch()': cfr.cpp:52:29: warning: ignoring return value of 'size_t fread(void*, size_t, size_t, FILE*)', declared with attribute warn_unused_result [-Wunused-result] fread(buff, 1, 4096, fin); ^
Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
---|---|---|---|---|---|---|
1 | 0.004 secunde | Raspuns gresit. | 10 | 0 | ||
2 | 0.896 secunde | OK. | 10 | 10 | ||
3 | 0.584 secunde | OK. | 10 | 10 | ||
4 | 0.756 secunde | OK. | 10 | 10 | ||
5 | 0.76 secunde | OK. | 10 | 10 | ||
6 | 0.004 secunde | Raspuns gresit. | 10 | 0 | ||
7 | 0.912 secunde | Raspuns gresit. | 10 | 0 | ||
8 | 0.58 secunde | Raspuns gresit. | 10 | 0 | ||
9 | 0.752 secunde | Raspuns gresit. | 10 | 0 | ||
10 | 0.756 secunde | Raspuns gresit. | 10 | 0 | ||
Punctaj total | 40 |
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema CFR 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ă.