#704
Notăm X ca fiind mulţimea numerelor naturale care se pot scrie sub forma 2a*3b. Se consideră doar acele numere pentru care 0 ≤ a ≤ D şi 0 ≤ b ≤ T, unde D şi T sunt date. Pentru un număr v din X, considerăm asociatul lui v ca fiind valoarea (C*P)%Q unde C este ultima cifră a lui v iar P şi Q se dau (de exemplu, pentru P = 1 şi Q = 10 asociatul lui 21*32 este 8).
Se cere determinarea valorii maxime a sumei asociatelor elementelor unei submulţimi a lui X astfel încât oricare ar fi două elemente u şi v din submulţimea respectivă, u nu divide pe v şi nici v nu divide pe u.
Lot Juniori, Baia Mare, 2013
| Problema | smsm | Operații I/O |
smsm.in/smsm.out
|
|---|---|---|---|
| Limita timp | 0.1 secunde | Limita memorie |
Total: 8 MB
/
Stivă 8 MB
|
| Id soluție | #58124879 | Utilizator | |
| Fișier | smsm.cpp | Dimensiune | 1.32 KB |
| Data încărcării | 15 Mai 2025, 11:07 | Scor/rezultat | Eroare de compilare |
smsm.cpp:1:1: error: expected unqualified-id before string constant "#include <stdio.h>\n\n#define DIM 511\nusing namespace std;\nint d[] = {6, 2, 4, 8};\nint t[] = {1, 3, 9, 7};\n\n\nint A[DIM][DIM], D[DIM][DIM], E[DIM][DIM];\nint N, M, i, j, ii, jj, max, maxim, P, Q, e1, e2;\n\nint Max(int a, int b, int c) {\n if (b > a)\n a = b;\n if (c > a)\n a = c;\n return a;\n}\n\nint main() {\n \n FILE *f = fopen(\"smsm.in\",\"r\");\n FILE *g = fopen(\"smsm.out\",\"w\");\n \n fscanf(f,\"%d %d %d %d\",&N, &M, &P, &Q);\n fclose(f);\n \n for (i=0;i<=N;i++)\n for (j=0;j<=M;j++)\n if (i == 0)\n A[i][j] = (t[j%4] * P) % Q;\n else\n A[i][j] = (d[i % 4] * t[j % 4]%10 * P) % Q;\n \n for (i=N;i>=0;i--)\n for (j=0;j<=M;j++) {\n max = 0;\n if (i == N || j==0)\n D[i][j] = A[i][j];\n else\n D[i][j] = E[i+1][j-1] + A[i][j];\n \n if (j == 0)\n e1 = 0;\n else\n e1 = E[i][j-1];\n if (i == N)\n e2 = 0;\n else\n e2 = E[i+1][j];\n E[i][j] = Max(e1, e2, D[i][j]);\n \n if (D[i][j] > maxim)\n maxim = D[i][j];\n }\n fprintf(g,\"%d\\n\",maxim);\n fclose(g);\n return 0;\n}\n" ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema smsm 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ă.