Diferente pentru problema/simd intre reviziile #1 si #5

Nu exista diferente intre titluri.

Diferente intre continut:

== include(page="template/taskheader" task_id="simd") ==
Se consideră două matrice $A$ şi $B$ de ordin $n$, formate din întregi cu valori de la $0$ la $2^16^-1$. Să se calculeze produsul celor două matrice, $C = AB$. Să se afişeze restul împărţirii la $2^16^$ a sumei numerelor matricei $C$.
Se consideră două matrice $A$ şi $B$ de ordin $n$, formate din întregi cu valori de la $0$ la $2^16^-1$. Să se calculeze produsul _modulo $2^16^$_ al celor două matrice, $C = AB (mod 2^16^)$.
h2. Date de intrare
Fişierul de intrare $simd.in$ conţine numerele $n$ si $x$. Matricele $A$ şi $B$ se pot construi aşa:
Fişierul de intrare $simd.in$ conţine numerele $n$, $mod$ şi $num$. Matricele $A$ şi $B$ se pot construi aşa:
==code(cpp) |
// unsigned short A[n][n], B[n][n], x;
// unsigned short A[n][n], B[n][n], num;
// unsigned int mod;
assert(mod < 65536);
for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
        A[i][j] = x;
        x = 3 + 23 * x;
        num = 5 * num + 1;
        A[i][j] = (mod * num) >> 16;
    }
}
for (int j = 0; j < n; j++) {
    for (int i = 0; i < n; i++) {
        B[i][j] = x;
        x = 3 + 23 * x;
        num = 5 * num + 1;
        B[i][j] = (mod * num) >> 16;
    }
}
==
h2. Date de ieşire
În fişierul de ieşire $simd.out$ se află răspunsul cerut.
În fişierul de ieşire $simd.out$ se află un număr care poate fi obţinut, din matricea $C$, astfel:
 
==code(cpp) |
// unsigned short C[n][n];
unsigned short ans = 0, coef = 1;
for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
        ans ^= coef * C[i][j];
        coef *= 23;
    }
}
// print ans
==
h2. Restricţii
h2. Exemplu
table(example). |_. simd.in |_. simd.out |
| 24 7
| 58112
| 24 2533 23876
| 47906
|
h3. Hint în alb

Nu exista diferente intre securitate.

Topicul de forum nu a fost schimbat.