using System;
public class Test
{
public static void Main()
{
int n = 5;
int[,] matrix = new int[n, n];
int curr = 1;
for (int diff = 1 - n; diff <= n - 1; diff++)
{
for (int i = 0; i < n; i++)
{
int j = i - diff;
if (j < 0 || j >= n)
continue;
if (((diff+n+1)&1) > 0)
matrix[i, n-1-j] = curr++;
else
matrix[n-1-j, i] = curr++;
}
}
for (int j = 0; j < n; j++)
{
for (int i = 0; i < n; i++)
Console.Write(matrix[j, i] + " " );
Console.WriteLine();
}
}
}
dXNpbmcgU3lzdGVtOwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJaW50IG4gPSA1OwppbnRbLF0gbWF0cml4ID0gbmV3IGludFtuLCBuXTsKaW50IGN1cnIgPSAxOwpmb3IgKGludCBkaWZmID0gMSAtIG47IGRpZmYgPD0gbiAtIDE7IGRpZmYrKykKewogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspCiAgICB7CiAgICAgICAgaW50IGogPSBpIC0gZGlmZjsKICAgICAgICAgICAgICAgICAgIAogICAgICAgIGlmIChqIDwgMCB8fCBqID49IG4pCiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIGlmICgoKGRpZmYrbisxKSYxKSA+IDApICAgIAogICAgICAgICAgbWF0cml4W2ksIG4tMS1qXSA9IGN1cnIrKzsKICAgICAgICBlbHNlCiAgICAgICAgICBtYXRyaXhbbi0xLWosIGldID0gY3VycisrOwogICAgfQp9CmZvciAoaW50IGogPSAwOyBqIDwgbjsgaisrKQp7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykKICAgICAgICBDb25zb2xlLldyaXRlKG1hdHJpeFtqLCBpXSArICIgICIgKTsKICAgIENvbnNvbGUuV3JpdGVMaW5lKCk7Cn0KCX0KfQ==