#3107
margi
În Săptămâna Altfel – Să știi mai multe, să fi mai bun, elevii A și B se joacă un joc altfel, joc numit margi. Cei doi au la dispoziție o matrice pătratică binară de dimensiune 2
n
.
Scopul jocului este obținerea sumei maxim posibile prin adunarea punctajelor celor doi jucători. Dacă există mai multe posibilități de obținere a acestei sume, fiecare jucător va alege matricele cu număr de ordine mai mic.
Pentru un n
număr natural dat și o matrice binară de dimensiunea 2
n
, se cere să se determine punctajul maxim obținut de cei doi jucători. Se cere și determinarea unei strategii de alegere a matricelor la fiecare pas care să ducă la obținerea punctajului maxim.
Problema | margi | Operații I/O |
margi.in /margi.out
|
---|---|---|---|
Limita timp | 0.2 secunde | Limita memorie |
Total: 128 MB
/
Stivă 8 MB
|
Id soluție | #16351576 | Utilizator | |
Fișier | margi.cpp | Dimensiune | 6.54 KB |
Data încărcării | 16 Iulie 2019, 18:57 | Scor / rezultat | 50 puncte |
margi.cpp: In constructor 'nod::nod(int, nod*, nod*, int)': margi.cpp:22:16: warning: 'nod::p' will be initialized after [-Wreorder] nod *next,*p; ^ margi.cpp:21:9: warning: 'int nod::idx' [-Wreorder] int idx; ^ margi.cpp:24:5: warning: when initialized here [-Wreorder] nod (int a, nod *b, nod *c, int d):vl(a),next(b),p(c),idx(d){} ^ margi.cpp: In function 'int df(int, int)': margi.cpp:137:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int i=0;i<v[k].size();i++) ^ margi.cpp:157:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int i=0;i<v[k].size();i++) ^ margi.cpp:174:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int i=0;i<v[k].size();i++) ^ margi.cpp:186:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int i=0;i<v[k].size();i++) ^ margi.cpp:187:35: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int j=i+1;j<v[k].size();j++) ^ margi.cpp:193:128: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if(dp[3][k]<s1[k]+dp[1][v[k][i]]+dp[2][v[k][j]] || (dp[3][k]==s1[k]+dp[1][v[k][i]]+dp[2][v[k][j]] && (ul[2][k]==-1 && ul[1][k]>i || (ul[1][k]==i && ul[1][k]>j)))) ^ margi.cpp:204:128: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if(dp[3][k]<s1[k]+dp[2][v[k][i]]+dp[1][v[k][j]] || (dp[3][k]==s1[k]+dp[2][v[k][i]]+dp[1][v[k][j]] && (ul[2][k]==-1 && ul[1][k]>j || (ul[1][k]==j && ul[1][k]>i)))) ^ margi.cpp:184:9: warning: variable 'sx' set but not used [-Wunused-but-set-variable] int sx; ^
Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
---|---|---|---|---|---|---|
0 | 0 secunde | OK. | 5 | 5 | ||
1 | 0 secunde | OK. | 5 | 5 | ||
2 | 0 secunde | Raspuns gresit. | 5 | 0 | ||
3 | 0 secunde | OK. | 5 | 5 | ||
4 | 0 secunde | OK. | 5 | 5 | ||
5 | 0.008 secunde | Caught fatal signal 11 | 5 | 0 | ||
6 | 0.004 secunde | OK. | 5 | 5 | ||
7 | 0 secunde | OK. | 5 | 5 | ||
8 | 0.004 secunde | Caught fatal signal 11 | 5 | 0 | ||
9 | 0 secunde | OK. | 5 | 5 | ||
10 | 0 secunde | OK. | 5 | 5 | ||
11 | 0.044 secunde | Caught fatal signal 11 | 5 | 0 | ||
12 | 0.044 secunde | Caught fatal signal 11 | 5 | 0 | ||
13 | 0.044 secunde | Caught fatal signal 11 | 5 | 0 | ||
14 | 0.012 secunde | Caught fatal signal 11 | 5 | 0 | ||
15 | 0.044 secunde | Caught fatal signal 11 | 5 | 0 | ||
16 | 0.004 secunde | Caught fatal signal 11 | 5 | 0 | ||
17 | 0.044 secunde | Caught fatal signal 11 | 5 | 0 | ||
18 | 0 secunde | OK. | 5 | 5 | ||
19 | 0.08 secunde | OK. | 5 | 5 | ||
Punctaj total | 50 |
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema margi 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ă.