#3778
Pian
Ian este un copil pasionat de muzică, așa că părinții săi i-au cumpărat de ziua lui un pian. Pianul lui Ian este mai special, acesta are N
clape. Întrucât pianul nu este nou, clapele se mișcă mai greu, astfel apăsarea celei de-a i
-a clape durează t[i]
secunde. Deoarece Ian este foarte nerăbdător, s-a hotarât să repare clapele pianului pentru ca apăsarea unei clape să fie cât mai rapidă. Acesta poate selecta două clape vecine i
și i+1
ce necesită t[i]
, respectiv t[i+1]
secunde pentru a fi apăsate și le lustruiește. În urma lustruirii, cele două clape vor necesita doar cmmdc(t[i],t[i+1])
secunde pentru apăsarea fiecăreia. Practic, o operație va efectua următoarea transformare asupra clapelor: t[i] = t[i + 1] = cmmdc(t[i], t[i+1])
.
Lot informatică 2021
Problema | Pian | Operații I/O |
![]() pian.in /pian.out
|
---|---|---|---|
Limita timp | 0.3 secunde | Limita memorie |
Total: 64 MB
/
Stivă 8 MB
|
Id soluție | #47384888 | Utilizator | |
Fișier | pian.cpp | Dimensiune | 4.20 KB |
Data încărcării | 11 Decembrie 2023, 17:09 | Scor / rezultat | 100 puncte |
pian.cpp: In function 'void print_sol()': pian.cpp:91:34: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (int i = 0; i < sol.size(); ++i) { ^ pian.cpp: In function 'int valid(int)': pian.cpp:189:39: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (int j = 0; j < d[i].size(); ++j) { ^ pian.cpp:207:39: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (int j = 0; j < d[i].size(); ++j) { ^ pian.cpp:227:49: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (int j = 0; j < d[i - len + 1].size(); ++j) { ^ pian.cpp: In function 'int main()': pian.cpp:307:22: warning: unused variable 'last' [-Wunused-variable] int st, dr, mij, last, pos_l, pos_r, rez; ^ pian.cpp:249:35: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen("pian.in", "r", stdin); ^ pian.cpp:251:37: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen("pian.out", "w", stdout); ^ pian.cpp:255:29: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d %d\n", &t, &n); ^ pian.cpp:259:23: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d", &v[1]); ^ pian.cpp:265:27: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d", &v[i]); ^ pian.cpp:345:26: warning: 'pos_r' may be used uninitialized in this function [-Wmaybe-uninitialized] for (int i = pos_r + 1; i <= n; ++i) { ^ pian.cpp:307:28: warning: 'pos_l' may be used uninitialized in this function [-Wmaybe-uninitialized] int st, dr, mij, last, pos_l, pos_r, rez; ^
Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
---|---|---|---|---|---|---|
0 | 0 secunde | OK | 3 | 3 | ||
1 | 0 secunde | OK | 3 | 3 | ||
2 | 0 secunde | OK | 3 | 3 | ||
3 | 0 secunde | OK | 3 | 3 | ||
4 | 0 secunde | OK | 3 | 3 | ||
5 | 0 secunde | OK | 3 | 3 | ||
6 | 0 secunde | OK | 3 | 3 | ||
7 | 0.004 secunde | OK | 3 | 3 | ||
8 | 0.008 secunde | OK | 3 | 3 | ||
9 | 0.012 secunde | OK | 3 | 3 | ||
10 | 0 secunde | OK | 3 | 3 | ||
11 | 0 secunde | OK | 3 | 3 | ||
12 | 0 secunde | OK | 3 | 3 | ||
13 | 0 secunde | OK | 3 | 3 | ||
14 | 0 secunde | OK | 3 | 3 | ||
15 | 0 secunde | OK | 3 | 3 | ||
16 | 0 secunde | OK | 3 | 3 | ||
17 | 0.004 secunde | OK | 3 | 3 | ||
18 | 0 secunde | OK | 3 | 3 | ||
19 | 0.004 secunde | OK | 3 | 3 | ||
20 | 0.004 secunde | OK | 4 | 4 | ||
21 | 0.012 secunde | OK | 4 | 4 | ||
22 | 0.012 secunde | OK | 4 | 4 | ||
23 | 0.024 secunde | OK | 4 | 4 | ||
24 | 0.028 secunde | OK | 4 | 4 | ||
25 | 0.056 secunde | OK | 4 | 4 | ||
26 | 0.092 secunde | OK | 4 | 4 | ||
27 | 0.096 secunde | OK | 4 | 4 | ||
28 | 0.12 secunde | OK | 4 | 4 | ||
29 | 0.148 secunde | OK | 4 | 4 | ||
Punctaj total | 100 |
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Pian 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ă.