Pagini recente » Cod sursa (job #2861841) | Cod sursa (job #1576777) | Cod sursa (job #1476547) | Cod sursa (job #1774502) | Cod sursa (job #231098)
Cod sursa(job #231098)
#include <stdio.h>
#include <algorithm>
using namespace std;
int n, nr, k;
int a[1024][1024];
int main()
{
freopen("tablete.in","r",stdin);
freopen("tablete.out","w",stdout);
scanf("%ld %ld", &n, &k);
int x = 0;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++)
a[i][j] = (++x);
if ((n % 2) && !(k % 2))
for (int i = 1; i <= n; i++)
if (!(i % 2))
{
nr = a[i + 1][1];
a[i + 1][1] = a[i][k];
for (int j = k; j < n; j++)
a[i][j] = a[i][j + 1];
a[i][n] = nr;
}
if ((n % 2) && (k % 2))
{
nr = a[2][1];
a[2][1] = a[1][k];
for (int i = k; i < n; i++)
a[1][i] = a[1][i + 1];
a[1][n] = nr;
for (int i = 3; i <= n; i++)
if (i % 2)
{
nr = a[i - 1][n];
a[i - 1][n] = a[i][1];
for (int j = k; j; j--)
a[i][j] = a[i][j - 1];
a[i][1] = nr;
}
}
if (!(n % 2) && (k % 2))
{
for (int i = 1; i <= n; i++)
if (i % 2)
{
nr = a[i][k];
for (int j = k; j < n; j++)
a[i][j] = a[i][j + 1];
a[i][n] = a[i + 1][k];
for (int j = k; j; j--)
a[i + 1][j] = a[i + 1][j - 1];
a[i + 1][1] = nr;
}
}
for (int i = 1; i <= n; i++)
{
for (int j = 1; j < n; j++)
printf("%ld ", a[i][j]);
printf("%ld\n", a[i][n]);
}
fclose(stdin);
fclose(stdout);
return 0;
}