Pagini recente » Cod sursa (job #2944332) | Cod sursa (job #2348605) | Cod sursa (job #2299576) | Cod sursa (job #254457) | Cod sursa (job #484647)
Cod sursa(job #484647)
#include<cstdio>
const int N=1002;
int n,k,a[N][N];
//bool bifat[N*N];
void afis()
{
for (int i=1;i<=n;++i)
{
for (int j=1;j<=n;++j)
printf("%d ",a[i][j]);
printf("\n");
}
}
int main()
{
freopen("tablete.in","r",stdin);
freopen("tablete.out","w",stdout);
scanf("%d%d",&n,&k);
/*int primulpar=2,urm=1;
for (int i=1;i<=n;++i)
{
for (int j=1;j<k;++j)
{
while (bifat[urm])
urm++;
a[i][j]=urm;
bifat[urm]=true;
urm++;
if (urm>primulpar)
primulpar+=2;
}
a[i][k]=primulpar;
bifat[primulpar]=true;
primulpar+=2;
}
for (int i=1;i<=n;++i)
{
int nr=k+1;
for (int kk=a[i][k]+1;kk<=n*n;kk++)
if (!bifat[kk])
{
a[i][nr]=kk;
bifat[kk]=true;
nr++;
if (nr==n+1)
break;
}
}*/
if (k%2==0)
{
for (int i=1;i<=n;++i)
{
for (int j=1;j<=k;++j)
a[i][j]=(i-1)*k+j;
for (int j=k+1;j<=n;++j)
a[i][j]=n*k+(i-1)*(n-k)+(j-k);
}
}
else
{
for (int i=1;i<k;++i)
a[1][i]=i;
a[1][k]=k+1;
a[2][1]=k;
for (int i=2;i<=k;++i)
a[2][i]=k+i;
for (int i=3;i<=n;++i)
for (int j=1;j<=k;++j)
a[i][j]=a[i-2][j]+2*k;
a[1][k+1]=k*n;
a[1][k+2]=k*n+2;
for (int i=k+3;i<=n;++i)
a[1][i]=a[1][i-1]+1;
a[2][k+1]=a[1][n]+1;
for (int i=k+2;i<=n;++i)
a[2][i]=a[2][i-1]+1;
for (int i=3;i<=n;++i)
for (int j=k+1;j<=n;++j)
a[i][j]=a[i-2][j]+4;
}
afis();
return 0;
}