Pagini recente » Cod sursa (job #2797473) | Cod sursa (job #1931697) | Cod sursa (job #69605) | Cod sursa (job #1850642) | Cod sursa (job #988823)
Cod sursa(job #988823)
#include<cstdio>
using namespace std;
int N,K,i,j,cnt,last,A[1005][1005];
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=1;i<=N;i++)
{
for(j=1;j<=N;j++) printf("%d ",++cnt);
printf("\n");
}
else
{
for(j=1;j<=N;j++)
{
if(j==K) cnt++,last=cnt;
printf("%d ",++cnt);
}
printf("\n");
for(i=2;i<=N-2;i++)
{
for(j=1;j<=N;j++)
{
if(j==1) {printf("%d ",last); continue;}
if(j==K) cnt++,last=cnt;
printf("%d ",++cnt);
}
printf("\n");
}
for(j=1;j<=N;j++)
{
if(j==1) {printf("%d ",last); continue;}
if(j==N) {printf("%d ",N*N); continue;}
if(j==K) cnt++,last=cnt;
printf("%d ",++cnt);
}
printf("\n");
for(j=1;j<=N;j++)
{
if(j==1) {printf("%d ",last); continue;}
printf("%d ",++cnt);
}
printf("\n");
}
}
else
{
if(K%2==0)
{
for(i=1;i<=N;i++)
for(j=1;j<=K;j++) A[i][j]=++cnt;
for(i=1;i<=N;i++)
for(j=K+1;j<=N;j++) A[i][j]=++cnt;
}
else
{
for(i=1;i<=N;i++)
for(j=1;j<=K;j++)
{
if(j==1)
{
if(last) A[i][j]=last;
else A[i][j]=++cnt;
continue;
}
if(j!=K) {A[i][j]=++cnt; continue;}
++cnt;
if(cnt%2==1) last=cnt,A[i][j]=++cnt;
else last=0,A[i][j]=cnt;
}
for(i=1;i<=N;i++)
for(j=K+1;j<=N;j++)
{
if(j==K+1)
{
if(last) A[i][j]=last,last=0;
else A[i][j]=++cnt;
continue;
}
A[i][j]=++cnt;
}
}
for(i=1;i<=N;i++)
{
for(j=1;j<=N;j++) printf("%d ",A[i][j]);
printf("\n");
}
}
return 0;
}