#3441
Cetate
Cetatea Vizima din regatul Temeria poate fi reprezentată printr-o matrice cu N
linii și M
coloane, numerotate începând cu 1
. Vizima este o cetate înfloritoare, fapt datorat numărului mare de negustori și meșteri prezenți. Din acest motiv, fiecărei celule din matrice îi este atribuit un profit corespunzător zonei respective. Regele Foltest dorește să reconstruiască zidurile cetății, dar cum războiul cu Imperiul Nilfgaard bate la ușă și resursele regatului sunt limitate, el trebuie să aleagă o porțiune pe care să o poată apăra, reprezentată ca o submatrice. O submatrice este identificată printr-o configurație de patru numere i1
, j1
, i2
, j2
(1≤i1≤i2≤N
, 1≤j1≤j2≤M
), în această ordine, și este formată din elementele situate pe liniile consecutive i1
, i1+1
, …, i2
și pe coloanele consecutive j1
, j1+1
, …, j2
ale matricei prin care este reprezentată cetatea. Laturile submatricei sunt egale cu numărul de linii, respectiv de coloane din care a preluat elemente, iar profitul submatricei este suma valorilor din celulele sale.
Scrieţi un program care, cunoscând matricea cetății și o valoare K
, determină:
K
, precum și configurația prin care se identifică ea;K
, precum și configurația prin care se identifică ea.OJI 2020, clasa a IX-a
Problema | Cetate | Operații I/O |
cetate.in /cetate.out
|
---|---|---|---|
Limita timp | 1 secunde | Limita memorie |
Total: 64 MB
/
Stivă 32 MB
|
Id soluție | #54977235 | Utilizator | |
Fișier | cetate.cpp | Dimensiune | 2.87 KB |
Data încărcării | 14 Decembrie 2024, 14:36 | Scor / rezultat | 17 puncte |
cetate.cpp: In function 'int main()': cetate.cpp:56:13: warning: unused variable 'sum' [-Wunused-variable] int sum = 0; ^ cetate.cpp:57:13: warning: unused variable 'len' [-Wunused-variable] int len = 0; ^ cetate.cpp:19:35: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen("cetate.in", "r", stdin); ^ cetate.cpp:20:37: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen("cetate.out", "w", stdout); ^ cetate.cpp:21:36: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d%d%d%d", &p, &n, &m, &k); ^ cetate.cpp:24:32: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%lld", &mat[i][j]); ^ cetate.cpp:107:23: warning: 'bestc' may be used uninitialized in this function [-Wmaybe-uninitialized] bestc + 1); ^ cetate.cpp:107:23: warning: 'bestl' may be used uninitialized in this function [-Wmaybe-uninitialized] cetate.cpp:107:23: warning: 'bestj' may be used uninitialized in this function [-Wmaybe-uninitialized] cetate.cpp:107:23: warning: 'besti' may be used uninitialized in this function [-Wmaybe-uninitialized] cetate.cpp:44:70: warning: 'sc' may be used uninitialized in this function [-Wmaybe-uninitialized] printf("%lld\n%d %d %d %d\n", max, sl + 1, sc + 1, sl + k, sc + k); ^ cetate.cpp:44:70: warning: 'sl' may be used uninitialized in this function [-Wmaybe-uninitialized]
Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
---|---|---|---|---|---|---|
0 | 0 secunde | OK. | 2 | 2 | ||
1 | 0 secunde | Raspuns gresit. | 7 | 0 | ||
2 | 0 secunde | OK. | 2 | 2 | ||
3 | 0 secunde | Raspuns gresit. | 6 | 0 | ||
4 | 0 secunde | OK. | 2 | 2 | ||
5 | 0 secunde | Raspuns gresit. | 6 | 0 | ||
6 | 0 secunde | Raspuns gresit. | 2 | 0 | ||
7 | 0.008 secunde | Raspuns gresit. | 6 | 0 | ||
8 | 0.016 secunde | Raspuns gresit. | 2 | 0 | ||
9 | 0.828 secunde | Raspuns gresit. | 7 | 0 | ||
10 | 0.012 secunde | Raspuns gresit. | 2 | 0 | ||
11 | 0.568 secunde | Raspuns gresit. | 7 | 0 | ||
12 | 0.012 secunde | OK. | 2 | 2 | ||
13 | 0.548 secunde | Raspuns gresit. | 7 | 0 | ||
14 | 0.02 secunde | Raspuns gresit. | 2 | 0 | ||
15 | 0.624 secunde | Raspuns gresit. | 8 | 0 | ||
16 | 0.02 secunde | OK. | 2 | 2 | ||
17 | 0.744 secunde | Raspuns gresit. | 8 | 0 | ||
18 | 0.016 secunde | OK. | 2 | 2 | ||
19 | 0.944 secunde | Raspuns gresit. | 8 | 0 | ||
20 | 0 secunde | OK. | 5 | 5 | Exemplu | |
21 | 0 secunde | Raspuns gresit. | 5 | 0 | Exemplu | |
Punctaj total | 17 |
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Cetate 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ă.