Решение задачи №1238 «Произведение матриц» с ACMP





Решение задачи №1238 «Произведение матриц» с ACMP

Условие задачи

Заданы две целочисленные матрицы A и B. Матрица A состоит из N строк и M столбцов, Матрица B состоит из M строк и P столбцов. Требуется вычислить произведение данных матриц A*B.

Входные данные
Первая строка входного файла INPUT.TXT содержит три натуральных числа N, M и P. Далее следует описание матриц A и B. Матрица A состоит из N строк по M целых чисел. Матрица B состоит из M строк по P чисел. Матрицы отделены друг от друга пустой строкой. Все числа во входных данных не превышают 100 по абсолютной величине.

Выходные данные
В выходной файл OUTPUT.TXT выведите матрицу, полученную в результате произведения A*B.

#include<iostream>
using namespace std;
main ()
{
int n,m,i,j,k,p;
freopen("input.txt","r",stdin);
cin>>n>>m>>p;
int a[n][m],b[m][p],c[n][p];
for(i=0;i<n;++i)
for(j=0;j<m;++j)cin>>a[i][j];

for(j=0;j<m;++j)
for(k=0;k<p;++k)cin>>b[j][k];

for(i=0;i<n;++i)
for(k=0;k<p;++k){c[i][k]=0;

for(j=0;j<m;++j)c[i][k]+=a[i][j]*b[j][k];}

for(i=0;i<n;++i)
{
for(k=0;k<p;++k)cout<<c[i][k]<<' ';
cout<<endl;}
}



Условия задач взяты с сайта acmp.ru