#4662
teze
Profesorul de informatică trebuie să corecteze tezele a m
elevi. Elevii au avut de rezolvat n
probleme în teză, numerotate de la 1 la n
. Fiecare elev a rezolvat toate problemele, deci profesorul are de corectat în total m x n
probleme. La începerea corectării fiecărei teze, trebuie identificat numele elevului, proces care durează exact p
secunde de fiecare dată, chiar dacă se revine la aceeași teză de mai multe ori.
După începerea corectării unei teze, căutarea fiecărei probleme durează k
secunde. Corectarea primei probleme din submulțimea aleasă durează t[1]
secunde, corectarea celei de-a doua probleme durează t[2]
secunde ș.a.m.d. Se garantează că t[1] < t[2] < ... < t[n]
. De fiecare dată când se revine la o anumită teză și se reîncepe corectarea ei cu o altă submulțime de probleme, corectarea primei probleme din submulțime va dura din nou t[1]
secunde.
Să se determine timpul minim în care pot fi corectate cele m
lucrări.
Problema | teze | Operații I/O |
teze.in /teze.out
|
---|---|---|---|
Limita timp | 0.5 secunde | Limita memorie |
Total: 64 MB
/
Stivă 8 MB
|
Id soluție | #50877467 | Utilizator | |
Fișier | teze.c | Dimensiune | 2.08 KB |
Data încărcării | 11 Mai 2024, 20:12 | Scor / rezultat | Eroare de compilare |
teze.c:3:20: warning: missing terminating ' character [enabled by default] const int MAX_Q = 1'000; ^ teze.c:3:1: error: missing terminating ' character const int MAX_Q = 1'000; ^ teze.c:4:1: error: expected ',' or ';' before 'const' const int MOD = 1'000'000'007; ^ teze.c:4:18: warning: multi-character character constant [-Wmultichar] const int MOD = 1'000'000'007; ^ teze.c:4:26: warning: missing terminating ' character [enabled by default] const int MOD = 1'000'000'007; ^ teze.c:4:1: error: missing terminating ' character const int MOD = 1'000'000'007; ^ teze.c:10:1: error: unknown type name 'u64' u64 p; ^ teze.c:11:5: error: variably modified 'd' at file scope int d[MAX_Q]; ^ teze.c:12:5: error: variably modified 'part_d' at file scope int part_d[MAX_Q + 1]; // suma primelor i valori, deci part_d[2] = d[0] + d[1] ^ teze.c: In function 'read_data': teze.c:17:3: warning: format '%llu' expects argument of type 'long long unsigned int *', but argument 5 has type 'int *' [-Wformat=] fscanf(f, "%d %d %llu %d %d %d", &n, &m, &p, &k, &t1, &q); ^ teze.c: At top level: teze.c:31:1: error: unknown type name 'u64' u64 t(u64 i) { ^ teze.c:31:7: error: unknown type name 'u64' u64 t(u64 i) { ^ teze.c:37:1: error: unknown type name 'u64' u64 pcost(unsigned f) { ^ teze.c: In function 'pcost': teze.c:38:3: error: unknown type name 'u64' u64 result = p; ^ teze.c:40:5: warning: implicit declaration of function 't' [-Wimplicit-function-declaration] result += t(i); ^ teze.c:43:24: error: 'u64' undeclared (first use in this function) return result * f + (u64)(n % f) * t(n / f + 1); ^ teze.c:43:24: note: each undeclared identifier is reported only once for each function it appears in teze.c: At top level: teze.c:46:1: error: unknown type name 'u64' u64 cost(int f) { ^ teze.c: In function 'cost': teze.c:47:23: error: 'u64' undeclared (first use in this function) return (pcost(f) + (u64)k * n) % MOD * m % MOD; ^ teze.c:47:27: error: expected ')' before 'k' return (pcost(f) + (u64)k * n) % MOD * m % MOD; ^ teze.c:47:36: error: 'MOD' undeclared (first use in this function) return (pcost(f) + (u64)k * n) % MOD * m % MOD; ^ teze.c: At top level: teze.c:50:1: error: unknown type name 'u64' u64 bin_search_phases() { ^ teze.c:74:19: error: unknown type name 'u64' void write_answer(u64 min_cost) { ^ teze.c: In function 'main': teze.c:83:3: error: unknown type name 'u64' u64 min_cost = bin_search_phases(); ^ teze.c:84:3: warning: implicit declaration of function 'write_answer' [-Wimplicit-function-declaration] write_answer(min_cost); ^ teze.c: In function 'read_data': teze.c:17:9: warning: ignoring return value of 'fscanf', declared with attribute warn_unused_result [-Wunused-result] fscanf(f, "%d %d %llu %d %d %d", &n, &m, &p, &k, &t1, &q); ^ teze.c:19:11: warning: ignoring return value of 'fscanf', declared with attribute warn_unused_result [-Wunused-result] fscanf(f, "%d", &d[(2 * q - 2 + i) % q]); // pune d_2 pe prima poziție ^ teze.c: In function 'pcost': teze.c:44:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ teze.c: In function 'cost': teze.c:48:1: warning: control reaches end of non-void function [-Wreturn-type] } ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema teze 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ă.