Cerința
Se dau dimensiunile a două matrice, A
și B
și valorile acestora. Calculați produsul lor .
Date de intrare
Fișierul de intrare produs_matrice.in
conține pe prima linie numerele m n
, apoi începând cu următoarea linie matricea A
de dimensiuni (m,n)
. Pe linia m+2
numărul p
, apoi matricea B
de dimensiuni (n,p)
.
Date de ieșire
Fișierul de ieșire produs_matrice.out
va conține matricea C
, construită pe baza cerinței .
Restricții și precizări
1 ≤ n , m , p ≤ 100
-10.000 ≤ A[i][j] , B[i][j] ≤ 10.000
Exemplu
produs_matrice.in
2 3 1 -2 3 0 1 -1 2 3 1 -1 -1 0 1
produs_matrice.out
5 6 -1 -2
Explicație
Dacă se înmulțeste A
cu B
și rezultatul se află în C
, atunci elementul C[i][j]
reprezintă suma de produse dintre elementele de pe linia i
a matricei A
cu elementele de pe coloana j
a matricei B
. Având exemplul nostru , luăm C[1][2] = A[1][1] * B[1][2] + A[1][2] * B[2][2] + A[1][3] * B[3][2]
.
#include <bits/stdc++.h> using namespace std ; ifstream cin("produs_matrice.in"); ofstream cout("produs_matrice.out"); long long n , m , p , a[105][105] , b[105][105] , c[105][105]; int main () { cin >> m >> n; for(int i = 1 ; i <= m ; ++i ) for(int j = 1 ; j <= n ; ++j ) cin >> a[i][j] ; cin >> p; for(int i = 1 ; i <= n ; ++i ) for(int j = 1 ; j <= p ; ++j ) cin >> b[i][j] ; for(int i = 1 ; i <= m ; ++i ) for(int j = 1 ; j <= p ; ++j ) for(int l = 1 ; l <= n ; ++l ) c[i][j] = c[i][j] + a[i][l] * b[l][j] ; for(int i = 1 ; i <= m ; ++i ) { for(int j = 1 ; j <= p ; ++j ) cout << c[i][j] << " " ; cout << '\n'; } }