#include <cstdio>
int main()
{
const int w = 10, h = 10;
int t[h][w];
int i = 0, j = 0, k = 2;
int dir = 1;
if (w > 0 && h > 0)
t[0][0] = 1;
while (k <= w * h)
if (dir == 1) // z gury na dul
{
++(j + 1 < w ? j : i);
while (i < h && j >= 0)
t[i++][j--] = k++;
i--, j++;
dir = 2;
}
else // z dolu do gury
{
++(i + 1 < h ? i : j);
while (i >= 0 && j < w)
t[i--][j++] = k++;
i++, j--;
dir = 1;
}
for (int i = 0; i < h; i++)
{
for (int j = 0; j < w; j++)
printf("%d ", t[i][j]);
printf("\n");
}
return 0;
}
I2luY2x1ZGUgPGNzdGRpbz4KCmludCBtYWluKCkKewoJY29uc3QgaW50IHcgPSAxMCwgaCA9IDEwOwoKCWludCB0W2hdW3ddOwoJaW50IGkgPSAwLCBqID0gMCwgayA9IDI7CglpbnQgZGlyID0gMTsKCglpZiAodyA+IDAgJiYgaCA+IDApCgkJdFswXVswXSA9IDE7CgoJd2hpbGUgKGsgPD0gdyAqIGgpCgkJaWYgKGRpciA9PSAxKSAvLyB6IGd1cnkgbmEgZHVsCgkJewoJCQkrKyhqICsgMSA8IHcgPyBqIDogaSk7CgoJCQl3aGlsZSAoaSA8IGggJiYgaiA+PSAwKQoJCQkJdFtpKytdW2otLV0gPSBrKys7CgoJCQlpLS0sIGorKzsKCQkJZGlyID0gMjsKCQl9CgkJZWxzZSAvLyB6IGRvbHUgZG8gZ3VyeQoJCXsKCQkJKysoaSArIDEgPCBoID8gaSA6IGopOwoKCQkJd2hpbGUgKGkgPj0gMCAmJiBqIDwgdykKCQkJCXRbaS0tXVtqKytdID0gaysrOwoKCQkJaSsrLCBqLS07CgkJCWRpciA9IDE7CgkJfQoKCWZvciAoaW50IGkgPSAwOyBpIDwgaDsgaSsrKQoJewoJCWZvciAoaW50IGogPSAwOyBqIDwgdzsgaisrKQoJCQlwcmludGYoIiVkICIsIHRbaV1bal0pOwoJCXByaW50ZigiXG4iKTsKCX0KCglyZXR1cm4gMDsKfQ==