// $Id: matrix.csharp,v 1.0 2002/05/09 12:45:00 dada Exp $
// http://dada.perl.it/shootout/
using System;
class App {
static int SIZE = 30;
public static int[,] mkmatrix (int rows, int cols) {
int count = 1;
int[,] m = new int[rows,cols];
for (int i=0; i<rows; i++) {
for (int j=0; j<cols; j++) {
m[i,j] = count++;
}
}
return(m);
}
public static void mmult (int rows, int cols,
int[,] m1, int[,] m2, int[,] m3) {
for (int i=0; i<rows; i++) {
for (int j=0; j<cols; j++) {
int val = 0;
for (int k=0; k<cols; k++) {
val += m1[i,k] * m2[k,j];
}
m3[i,j] = val;
}
}
}
public static int Main(String[] args) {
int n;
int[,] m1 = mkmatrix(SIZE, SIZE);
int[,] m2 = mkmatrix(SIZE, SIZE);
int[,] mm = new int[SIZE,SIZE];
n = System.Convert.ToInt32(args[0]);
if(n < 1) n = 1;
for (int i=0; i<n; i++) {
mmult(SIZE, SIZE, m1, m2, mm);
}
Console.WriteLine(
mm[0,0].ToString() + " " + mm[2,3].ToString() + " " +
mm[3,2].ToString() + " " + mm[4,4].ToString());
return(0);
}
}