/* matrix1'.cpp
Multiplication of matrixes.
Static arrays, DIM=512.
(C) R.N.Shakirov, IMach of RAS(UB), 1998 - 2000
All Rights Reserved.
*/
#include <fstream.h>
#define DIM 512
int main (int argc, char **argv)
{
if (argc < 3) return 1;
static int m1 [DIM] [DIM];
static int m2 [DIM] [DIM];
static int m3 [DIM] [DIM];
int i,j,k,dim = 0;
// Input
ifstream fin (argv [1]);
if (!fin) return 1;
fin >> dim;
if (dim > DIM) return 1;
for (i = 0; i < dim; i++)
for (j = 0; j < dim; j++)
fin >> m1 [i] [j];
for (i = 0; i < dim; i++)
for (j = 0; j < dim; j++)
fin >> m2 [i] [j];
// Multiplication
for (i = 0; i < dim; i++)
for (j = 0; j < dim; j++)
{
int sum = 0;
for (k = 0; k < dim; k++)
sum += m1 [i] [k] * m2 [k] [j];
m3 [i] [j] = sum;
}
// Output
ofstream fout (argv [2]);
if (!fout) return 1;
for (i = 0; i < dim; i++)
{
for (j = 0; j < dim; j++)
{ fout.width (6); fout << m3 [i] [j]; }
fout << '\n';
}
return 0;
}