#1755
Arpsod are în curtea sa N
copaci foarte bătrâni, așezați în linie și numerotați de la 1
la N
. Fiecare copac are o înălțime cunoscută, H
i
. Există riscul ca la un vânt mai puternic aceștia să cadă, provocând stricăciuni. Astfel Arpsod a angajat doi muncitori pentru a-i tăia copacii. Primul muncitor va începe să taie copacii în ordinea 1, 2, 3, ... ,N
iar cel de-al doilea în ordinea N, N-1, N-2, ... 1
. Fiind un tărâm democratic, fiecare muncitor dorește să fie plătit pentru fiecare metru pe care îl taie. Muncitorul 1
are un tarif de T1
pe metru iar muncitorul 2
un tarif de T2
pe metru. Dacă un muncitor a început să taie un copac, acesta îl va tăia integral. Din motive de protecție a muncii, muncitorilor nu le este permis să lucreze simultan. De aici apare următoarea pretenție: dacă după tăierea unui copac, muncitorul nu este înlocuit de colegul său, acesta va cere un cost suplimentar C
pentru a rămâne să taie în continuare.
De exemplu, dacă avem 3
copaci: 1, 2, 3
și muncitorul 1
taie singur toți copacii, acesta va cere un cost suplimentar de 2
ori (pentru copacul 2
și copacul 3
).
Arpsod vă cere să determinați costul minim pe care îl poate plăti astfel încât toți cei N
copaci să fie tăiați.
Concursul EMPOWERSOFT, 2016
Problema | Democratie | Operații I/O |
![]() democratie.in /democratie.out
|
---|---|---|---|
Limita timp | 0.1 secunde | Limita memorie |
Total: 4 MB
/
Stivă 2 MB
|
Id soluție | #55494983 | Utilizator | |
Fișier | democratie.cpp | Dimensiune | 812 B |
Data încărcării | 16 Ianuarie 2025, 12:47 | Scor / rezultat | Eroare de compilare |
democratie.cpp: In function 'int rec(int, int, int)': democratie.cpp:12:13: warning: unused variable 'valueA' [-Wunused-variable] int valueA = vec[first]*t1, valueB = vec[last]*t2; ^ democratie.cpp:12:37: warning: unused variable 'valueB' [-Wunused-variable] int valueA = vec[first]*t1, valueB = vec[last]*t2; ^ democratie.cpp:14:13: warning: unused variable 'valueA' [-Wunused-variable] int valueA = vec[first]*t1+c1, valueB = vec[last]*t2; ^ democratie.cpp:14:40: warning: unused variable 'valueB' [-Wunused-variable] int valueA = vec[first]*t1+c1, valueB = vec[last]*t2; ^ democratie.cpp:16:13: warning: unused variable 'valueA' [-Wunused-variable] int valueA = vec[first]*t1, valueB = vec[last]*t2 + c2; ^ democratie.cpp:16:37: warning: unused variable 'valueB' [-Wunused-variable] int valueA = vec[first]*t1, valueB = vec[last]*t2 + c2; ^ democratie.cpp:17:8: error: 'valueA' was not declared in this scope if(valueA>valueB)int mini=valueB;last_turn=2; ^ democratie.cpp:17:15: error: 'valueB' was not declared in this scope if(valueA>valueB)int mini=valueB;last_turn=2; ^ democratie.cpp:17:26: warning: unused variable 'mini' [-Wunused-variable] if(valueA>valueB)int mini=valueB;last_turn=2; ^ democratie.cpp:18:8: error: 'valueB' was not declared in this scope if(valueB>valueA)int mini=valueA;last_turn=1; ^ democratie.cpp:18:15: error: 'valueA' was not declared in this scope if(valueB>valueA)int mini=valueA;last_turn=1; ^ democratie.cpp:18:26: warning: unused variable 'mini' [-Wunused-variable] if(valueB>valueA)int mini=valueA;last_turn=1; ^ democratie.cpp:19:1: warning: no return statement in function returning non-void [-Wreturn-type] } ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Democratie 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ă.