Pagini recente » Cod sursa (job #1993476) | Cod sursa (job #2922040) | Cod sursa (job #8006) | Cod sursa (job #2236235) | Cod sursa (job #227025)
Cod sursa(job #227025)
#include <cstdio>
using namespace std;
#define MAXN 1024
int N, K;
int m[MAXN][MAXN];
int main()
{
freopen("tablete.in", "rt", stdin);
freopen("tablete.out", "wt", stdout);
scanf("%d %d", &N, &K);
assert(3 <= N && N <= 1000);
assert(1 < K && K < N);
int k = 1, offset = 0;
if (N % 2 == 1)
{
for (int i = 0; i < N; i++)
m[i][0] = k++;
offset = 1;
}
int skipped = -1;
for (int i = 0; i < N; i++)
for (int j = offset; j < N; j++)
{
if (skipped != -1 && skipped > m[i][j - 1])
{
m[i][j] = skipped;
skipped = -1;
continue;
}
if (k % 2 && j == K - 1)
skipped = k++;
if (K % 2 && i == N - 2 && j == N - 1)
{
m[i][j] = N * N;
continue;
}
m[i][j] = k++;
}
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
printf("%4d ", m[i][j]);
printf("\n");
}
return 0;
}