Pagini recente » Cod sursa (job #1768618) | Cod sursa (job #1216569)
#include <cstdio>
int s[1005][1005];
int main(void)
{
int n,k;
freopen("tablete.in","r",stdin);
freopen("tablete.out","w",stdout);
scanf("%d%d\n",&n,&k);
if (!(k%2))
{for (int i=1;i<=n;++i) for (int j=1;j<=k;++j) s[i][j]=(i-1)*k+j;int a=n*k;for (int i=1;i<=n;++i) for (int j=1;j<=n;++j) if (!s[i][j]) s[i][j]=(++a);}
else
if (!(n%2))
{
for (int i=1;i<=n;++i) for (int j=1;j<=k;++j)
if (i>1 && !(i%2) && j==1) s[i][j]=(i-1)*k;else if ((i%2) && j==k) s[i][j]=i*k+1;else s[i][j]=(i-1)*k+j;
int a=n*k;
for (int i=1;i<=n;++i) for (int j=1;j<=n;++j) if (!s[i][j]) s[i][j]=(++a);
}
else
{
for (int i=1;i<n;++i) for (int j=1;j<=k;++j)
if (i>1 && !(i%2) && j==1) s[i][j]=(i-1)*k;else if ((i%2) && j==k) s[i][j]=i*k+1;else s[i][j]=(i-1)*k+j;
int a=n*k+2;
for (int i=k;i;--i) s[n][i]=(--a);
s[1][k+1]=(n-1)*k+1;
a=n*k+1;
for (int i=1;i<=n;++i) for (int j=1;j<=n;++j) if (!s[i][j]) s[i][j]=(++a);
}
for (int i=1;i<=n;++i,printf("\n")) for (int j=1;j<=n;++j) printf("%d ",s[i][j]);
}