Pagini recente » Cod sursa (job #1202163) | Cod sursa (job #1547142) | Cod sursa (job #52252) | Cod sursa (job #1178772) | Cod sursa (job #231063)
Cod sursa(job #231063)
#include <stdio.h>
int i, j, k, p, N;
int A[1<<10][1<<10];
int main()
{
freopen("tablete.in", "r", stdin);
freopen("tablete.out", "w", stdout);
scanf("%d%d", &N, &k);
if (N % 2 == 0)
{
if (k % 2 == 0)
for (i = p = 1; i <= N; ++i)
for (j = 1; j <= N; A[i][j] = p++, ++j);
else
{
for (i = p = 1; i <= N; ++i)
for (j = 1; j <= k; A[i][j] = p++, ++j);
for (i = 1; i <= N; ++i, ++i)
{
A[i][k] += A[i+1][1];
A[i+1][1] = A[i][k] - A[i+1][1];
A[i][k] = A[i][k] - A[i+1][1];
}
for (j = k+1, p = N*k+1; j <= N; ++j)
for (i = 1; i <= N; ++i)
A[i][j] = p++;
}
}
else
{
if (k % 2 == 0)
{
for (i = p = 1; i <= N; ++i)
for (j = 1; j <= k; A[i][j] = p++, ++j);
for (j = k+1, p = N*k+1; j <= N; ++j)
for (i = 1; i <= N; ++i)
A[i][j] = p++;
}
else
{
for (i = p = 1; i <= N; ++i)
for (j = 1; j <= k; A[i][j] = p++, ++j);
for (i = 1; i < N; ++i, ++i)
{
A[i][k] += A[i+1][1];
A[i+1][1] = A[i][k] - A[i+1][1];
A[i][k] = A[i][k] - A[i+1][1];
}
for (A[N][k] = N*k+1, A[1][k+1] = N*k, i = 2, p = N*k+2; i <= N; A[i][k+1] = p++, ++i);
for (j = k+2, p = A[N][k+1]+1; j <= N; ++j)
for (i = 1; i <= N; ++i)
A[i][j] = p++;
}
}
for (i = 1; i <= N; ++i)
for (j = 1; j <= N; ++j)
if (j < N)
printf("%d ", A[i][j]);
else
printf("%d\n", A[i][j]);
return 0;
}