Pagini recente » Cod sursa (job #2930141) | Cod sursa (job #454546) | Cod sursa (job #1777182) | Cod sursa (job #1535958) | Cod sursa (job #232725)
Cod sursa(job #232725)
#include <cstdio>
#define MAX_N 1003
int N, K;
bool viz[MAX_N*MAX_N];
int A[MAX_N][MAX_N];
int main()
{
freopen("tablete.in","rt",stdin);
freopen("tablete.out","wt",stdout);
scanf("%d %d",&N, &K);
int p = K, r = 0;
if(p & 1) ++p, r = 1;
A[1][K] = p;
viz[p] = 1;
for(int i = 2; i <= N; ++i)
{
p = p + K - 1 + r;
r = p - (i-1)*K - K + 1;
if((p & 1))
if(r > 0) p--, r--;
else p++, r++;
viz[p] = 1;
A[i][K] = p;
}
p = 1;
for(int i = 1; i <= N; ++i)
for(int j = 1; j < K; ++j)
{
while(viz[p]) p++;
viz[p] = 1;
A[i][j] = p++;
}
for(int i = 1; i <= N; ++i)
for(int j = K+1; j <= N; ++j)
{
while(viz[p]) p++;
viz[p] = 1;
A[i][j] = p++;
}
for(int i = 1; i <= N; ++i)
{
for(int j = 1; j <= N; ++j)
printf("%d ",A[i][j]);
printf("\n");
}
}