using System;
public class Test
{
const int N = 7;
static void Main(string[] args)
{
int n = 0;
int[,] helix = new int[N, N];
int x0 = 0;
int xn = N - 1;
int y0 = 0;
int yn = N - 1;
while (n < N * N)
{
for (int x = x0; x <= xn; x++)
{
helix[y0, x] = ++n;
}
y0++;
for (int y = y0; y <= yn; y++)
{
helix[y, xn] = ++n;
}
xn--;
for (int x = xn; x >= x0; x--)
{
helix[yn, x] = ++n;
}
yn--;
for (int y = yn; y >= y0; y--)
{
helix[y, x0] = ++n;
}
x0++;
}
for (int x = 0; x < N; x++)
{
for (int y = 0; y < N; y++)
{
Console.Write("{0}\t", helix[x, y]);
}
Console.WriteLine();
}
Console.ReadKey();
}
}
dXNpbmcgU3lzdGVtOwoKcHVibGljIGNsYXNzIFRlc3QKewoJY29uc3QgaW50IE4gPSA3OwoKICAgICAgICBzdGF0aWMgdm9pZCBNYWluKHN0cmluZ1tdIGFyZ3MpCiAgICAgICAgewogICAgICAgICAgICBpbnQgbiA9IDA7CiAgICAgICAgICAgIGludFssXSBoZWxpeCA9IG5ldyBpbnRbTiwgTl07CgogICAgICAgICAgICBpbnQgeDAgPSAwOwogICAgICAgICAgICBpbnQgeG4gPSBOIC0gMTsKICAgICAgICAgICAgaW50IHkwID0gMDsKICAgICAgICAgICAgaW50IHluID0gTiAtIDE7CgogICAgICAgICAgICB3aGlsZSAobiA8IE4gKiBOKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBmb3IgKGludCB4ID0geDA7IHggPD0geG47IHgrKykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBoZWxpeFt5MCwgeF0gPSArK247CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgeTArKzsKCiAgICAgICAgICAgICAgICBmb3IgKGludCB5ID0geTA7IHkgPD0geW47IHkrKykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBoZWxpeFt5LCB4bl0gPSArK247CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgeG4tLTsKCiAgICAgICAgICAgICAgICBmb3IgKGludCB4ID0geG47IHggPj0geDA7IHgtLSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBoZWxpeFt5biwgeF0gPSArK247CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgeW4tLTsKCiAgICAgICAgICAgICAgICBmb3IgKGludCB5ID0geW47IHkgPj0geTA7IHktLSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBoZWxpeFt5LCB4MF0gPSArK247CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgeDArKzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZm9yIChpbnQgeCA9IDA7IHggPCBOOyB4KyspCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGZvciAoaW50IHkgPSAwOyB5IDwgTjsgeSsrKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIENvbnNvbGUuV3JpdGUoInswfVx0IiwgaGVsaXhbeCwgeV0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgQ29uc29sZS5SZWFkS2V5KCk7CiAgICAgICAgfQp9