Pagini recente » Cod sursa (job #3150576) | Cod sursa (job #877563) | Cod sursa (job #1126495) | Cod sursa (job #1356046) | Cod sursa (job #1058861)
#include<cstdio>
using namespace std;
int N,K,i,j,k;
int M[1005][1005];
int main()
{
freopen("tablete.in","r",stdin);
freopen("tablete.out","w",stdout);
scanf("%d%d",&N,&K);
//K par
if(K%2==0)
{
for(k=1,i=1;i<=N;i++)
for(j=1;j<=N;j++,k++)
M[i][j]=k;
}
//K impar si N par
if(K%2==1 && N%2==0)
{
k=1;
for(i=1;i<=N;i++)
{
for(j=1;j<=K-1;j++,k++)
M[i][j]=k;
M[i][K]=k+1;
i++;
M[i][1]=k;
k+=2;
for(j=2;j<=K;j++,k++)
M[i][j]=k;
}
for(i=1;i<=N;i++)
for(j=K+1;j<=N;j++,k++)
M[i][j]=k;
}
//K impar si N impar
if(K%2==1 && N%2==1)
{
k=1;
for(i=1;i<=N;i++)
{
for(j=1;j<=K-1;j++,k++)
M[i][j]=k;
M[i][K]=k+1;
i++;
if(i==N) break;
M[i][1]=k;
k+=2;
for(j=2;j<=K;j++,k++)
M[i][j]=k;
}
for(j=1;j<=K-1;j++)
M[N][j]=(N-1)*K+j;
M[N][K]=N*K+1;
M[1][K+1]=N*K;
k=N*K+2;
for(i=1;i<=N;i++)
for(j=K+1;j<=N;j++,k++)
M[i][j]=k;
}
//Afisare
for(i=1;i<=N;i++,printf("\n"))
for(j=1;j<=N;j++)
printf("%d ",M[i][j]);
return 0;
}