Pagini recente » Cod sursa (job #3257477) | Cod sursa (job #251293) | Cod sursa (job #272635) | Cod sursa (job #1147381) | Cod sursa (job #1675659)
#include <cstdio>
#define MAX 1000
using namespace std;
int v[MAX+1][MAX+1];
int main()
{
freopen("tablete.in", "r", stdin);
freopen("tablete.out", "w", stdout);
int n, k, el, i, j, pred;
scanf("%d%d", &n, &k);
if(n%2==0&&k%2==0){
for(i=1;i<=n;i++){
for(j=1;j<=n;j++)
printf("%d ", (i-1)*n+j);
printf("\n");
}
}
else
{
el=k;
for(i=1;i<=n;i++)
v[1][i]=i+el%2;
pred=el;
el+=n;
for(i=2;i<n;i++)
{
j=1;
if(pred%2)
v[i][j++]=v[i-1][k]-k+(1-n%2);
for(;j<=n;j++)
v[i][j]=(i-1)*n+j+el%2;
pred=el;
el+=n;
}
j=1;
if(pred%2)
v[n][j++]=v[n-1][k]-k+1-n%2;
if((n%2==1||n%2==0)&&k%2==1){
v[n][j++]=v[n-1][n];
v[n-1][n]=n*n;
}
else if(n%2==1&&k%2==0) v[n][j++]=v[n-1][n]+1;
for(;j<=n;j++)
v[n][j]=v[n][j-1]+1;
v[2][1]-=(1-n%2);
for(i=1;i<=n;i++){
for(j=1;j<=n;j++)
printf("%d ", v[i][j]);
printf("\n");
}
}
return 0;
}