using System;
using System.Diagnostics;
class Program {
//const int dimsize = 10000;
const int dimsize = 100;
Random rnd = new Random();
void Jag() {
var sw = Stopwatch.StartNew();
int [][] dm = new int[dimsize][];
for (int i=0; i<dimsize; i++) dm[i] = new int[dimsize];
for (int i=0; i<dimsize; i++) {
for (int j=0; j<dimsize; j++) dm[i][j] = rnd.Next();
}
for (int j=0; j<dimsize; j++) {
for (int i=0; i<dimsize; i++) dm[i][j] += rnd.Next();
}
int sum = 0;
for (int i=0; i<dimsize; i++) {
for (int j=0; j<dimsize; j++) sum += dm[i][j];
}
sw.Stop();
Console.WriteLine("jagged : {0} : {1}", sw.Elapsed, sum);
}
void Squ() {
var sw = Stopwatch.StartNew();
var dm = new int[dimsize, dimsize];
for (int i=0; i<dimsize; i++) {
for (int j=0; j<dimsize; j++) dm[i,j] = rnd.Next();
}
for (int j=0; j<dimsize; j++) {
for (int i=0; i<dimsize; i++) dm[i,j] += rnd.Next();
}
int sum = 0;
for (int i=0; i<dimsize; i++) {
for (int j=0; j<dimsize; j++) sum += dm[i, j];
}
sw.Stop();
Console.WriteLine("square : {0} : {1}", sw.Elapsed, sum);
}
static void Main() {
var p = new Program();
p.Jag();
p.Squ();
p.Jag();
p.Squ();
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uRGlhZ25vc3RpY3M7CgpjbGFzcyBQcm9ncmFtIHsKICAvL2NvbnN0IGludCBkaW1zaXplID0gMTAwMDA7CiAgY29uc3QgaW50IGRpbXNpemUgPSAxMDA7CiAgUmFuZG9tIHJuZCA9IG5ldyBSYW5kb20oKTsKICB2b2lkIEphZygpIHsKICAgIHZhciBzdyA9IFN0b3B3YXRjaC5TdGFydE5ldygpOwogICAgaW50IFtdW10gZG0gPSBuZXcgaW50W2RpbXNpemVdW107CiAgICBmb3IgKGludCBpPTA7IGk8ZGltc2l6ZTsgaSsrKSBkbVtpXSA9IG5ldyBpbnRbZGltc2l6ZV07CiAgICBmb3IgKGludCBpPTA7IGk8ZGltc2l6ZTsgaSsrKSB7CiAgICAgIGZvciAoaW50IGo9MDsgajxkaW1zaXplOyBqKyspIGRtW2ldW2pdID0gcm5kLk5leHQoKTsKICAgIH0KICAgIGZvciAoaW50IGo9MDsgajxkaW1zaXplOyBqKyspIHsKICAgICAgZm9yIChpbnQgaT0wOyBpPGRpbXNpemU7IGkrKykgZG1baV1bal0gKz0gcm5kLk5leHQoKTsKICAgIH0KICAgIGludCBzdW0gPSAwOwogICAgZm9yIChpbnQgaT0wOyBpPGRpbXNpemU7IGkrKykgewogICAgICBmb3IgKGludCBqPTA7IGo8ZGltc2l6ZTsgaisrKSBzdW0gKz0gZG1baV1bal07CiAgICB9CiAgICBzdy5TdG9wKCk7CiAgICBDb25zb2xlLldyaXRlTGluZSgiamFnZ2VkIDogezB9IDogezF9Iiwgc3cuRWxhcHNlZCwgc3VtKTsKICB9CiAgdm9pZCBTcXUoKSB7CiAgICB2YXIgc3cgPSBTdG9wd2F0Y2guU3RhcnROZXcoKTsKICAgIHZhciBkbSA9IG5ldyBpbnRbZGltc2l6ZSwgZGltc2l6ZV07CiAgICBmb3IgKGludCBpPTA7IGk8ZGltc2l6ZTsgaSsrKSB7CiAgICAgIGZvciAoaW50IGo9MDsgajxkaW1zaXplOyBqKyspIGRtW2ksal0gPSBybmQuTmV4dCgpOwogICAgfQogICAgZm9yIChpbnQgaj0wOyBqPGRpbXNpemU7IGorKykgewogICAgICBmb3IgKGludCBpPTA7IGk8ZGltc2l6ZTsgaSsrKSBkbVtpLGpdICs9IHJuZC5OZXh0KCk7CiAgICB9CiAgICBpbnQgc3VtID0gMDsKICAgIGZvciAoaW50IGk9MDsgaTxkaW1zaXplOyBpKyspIHsKICAgICAgZm9yIChpbnQgaj0wOyBqPGRpbXNpemU7IGorKykgc3VtICs9IGRtW2ksIGpdOwogICAgfQogICAgc3cuU3RvcCgpOwogICAgQ29uc29sZS5Xcml0ZUxpbmUoInNxdWFyZSA6IHswfSA6IHsxfSIsIHN3LkVsYXBzZWQsIHN1bSk7CiAgfQogIHN0YXRpYyB2b2lkIE1haW4oKSB7CiAgICB2YXIgcCA9IG5ldyBQcm9ncmFtKCk7CiAgICBwLkphZygpOwogICAgcC5TcXUoKTsKICAgIHAuSmFnKCk7CiAgICBwLlNxdSgpOwogIH0KfQo=