Pagini recente » Cod sursa (job #1637044) | Cod sursa (job #1126860) | Cod sursa (job #2488088) | Cod sursa (job #3156247) | Cod sursa (job #1888540)
#include <stdio.h>
#include <stdlib.h>
int a[1001][1001],v[1000001];
int main()
{
int n,k,i,j,c;
freopen("tablete.in","r",stdin);
freopen("tablete.out","w",stdout);
scanf("%d%d",&n,&k);
if(k%2==0 && n%2==0)
for(i=1; i<=n; i++){
for(j=1; j<=n; j++)
printf("%d ",(i-1)*n+j);
printf("\n");
}
else
{
if(n%2==0 && k%2==1){
c=k+1;
for(j=k; j<=n; j++,c++)
a[1][j]=c;
for(i=2; i<=n-1; i++)
for(j=1; j<=n; j++,c++)
a[i][j]=c;
c--;
a[n-1][n]=n*n;
for(j=2; j<=n; j++,c++)
a[n][j]=c;
a[n][1]=k;
for(j=1; j<k; j++)
a[1][j]=j;
for(i=1; i<=n; i++){
for(j=1; j<=n; j++)
printf("%d ",a[i][j]);
printf("\n");
}
}
else
{
if(k%2==1 && n%2==1){
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
a[i][j]=(i-1)*n+j;
for(i=1; i<=n-2; i+=2)
for(j=1; j<=n-1; j++)
a[i][j]=(i-1)*n+j+1;
for(j=2; j<=n; j++)
a[n][j]=(n-1)*n+j-1;
a[n][1]=1;
c=1;
for(i=1; i<=n-2; i+=2,c++)
v[c]=(i-1)*n+1;
v[c]=n*n;
c=2;
for(i=1; i<=n-2; i+=2,c++)
a[i][n]=v[c];
for(i=1; i<=n; i++){
for(j=1; j<=n; j++)
printf("%d ",a[i][j]);
printf("\n");
}
}
else
{
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
a[i][j]=(i-1)*n+j;
for(i=2; i<=n-2; i+=2)
for(j=1; j<=n-1; j++)
a[i][j]=(i-1)*n+j+1;
for(j=2; j<=n; j++)
a[n-1][j]=(n-2)*n+j-1;
a[n-1][1]=n+1;
c=1;
for(i=2; i<=n-2; i+=2,c++)
v[c]=(i-1)*n+1;
v[c]=n*n-n;
c=2;
for(i=2; i<=n-2; i+=2,c++)
a[i][n]=v[c];
for(i=1; i<=n; i++){
for(j=1; j<=n; j++)
printf("%d ",a[i][j]);
printf("\n");
}
}
}
}
return 0;
}