Revizia anterioară Revizia următoare
Fişierul intrare/ieşire: | simd.in, simd.out | Sursă | ad-hoc |
Autor | Alexandru Petrescu | Adăugată de | Alexandru Petrescu •alexpetrescu |
Timp execuţie pe test | 4.5 sec | Limită de memorie | 512000 kbytes |
Scorul tău | N/A | Dificultate | N/A |
Vezi solutiile trimise | Statistici
Single Instruction Multiple Data
Se consideră două matrice A şi B de ordin n, formate din întregi cu valori de la 0 la 216-1. Să se calculeze produsul celor două matrice, C = AB. Să se afişeze restul împărţirii la 216 a sumei numerelor matricei C.
Date de intrare
Fişierul de intrare simd.in conţine numerele n si x. Matricele A şi B se pot construi aşa:
// unsigned short A[n][n], B[n][n], x;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
A[i][j] = x;
x = 3 + 23 * x;
}
}
for (int j = 0; j < n; j++) {
for (int i = 0; i < n; i++) {
B[i][j] = x;
x = 3 + 23 * x;
}
}
Observaţi că parcurgerea matricei B este diferită de cea a matricei A.
Date de ieşire
În fişierul de ieşire simd.out se află răspunsul cerut.
Restricţii
#test | n |
---|---|
1 | 248 |
2 | 504 |
3 | 760 |
4 | 1016 |
5 | 1272 |
6 | 1528 |
7 | 1784 |
8 | 2040 |
9 | 2296 |
10 | 2552 |
Observaţie
Problema nu propune găsirea vreunui artificiu matematic care să simplifice rezolvarea.
Exemplu
simd.in | simd.out |
---|---|
24 7 | 58112 |
Hint în alb
Caută titlul pe Google.