Pagini recente » Cod sursa (job #2901400) | Cod sursa (job #687853) | Cod sursa (job #1549156) | Cod sursa (job #1571807) | Cod sursa (job #348489)
Cod sursa(job #348489)
#include<cstdio>
#define M 1001
short int n,m;
int a[M][M];
void citire()
{
freopen("tablete.in","r",stdin);
freopen("tablete.out","w",stdout);
scanf("%hd%hd",&n,&m);
}
void matrice()
{
int num=1;
a[1][1]=1;
a[2][1]=2;
for (int i=1; i<=2; ++i)
for (int j=2; j<m; ++j)
a[i][j]=a[i][j-1]+2;
a[1][m]=a[2][m-1]+2;
a[2][m]=a[1][m]+2;
a[3][1]=a[1][m-1]+2;
a[3][2]=a[3][1]+2;
a[3][3]=a[3][2]+2;
num=a[3][3]+1;
for (int i=3; i<=n; ++i)
{
for (int j=1; j<m; ++j)
if (!a[i][j])
if (j+1==m)
if (num%2==0)
{
if (i==n)
a[1][m+1]=num+1;
else
a[i+1][1]=num+1;
a[i][j]=num;
a[i][m]=num+2;
num+=3;
}
else
{
a[i][j]=num;
++num;
a[i][m]=num;
++num;
}
else
{
a[i][j]=num;
++num;
}
else
if (i==3&&j==m-1)
{
a[i][m]=num;
++num;
}
}
if (!a[1][m+1])
a[1][m+1]=num;
a[2][m+1]=a[n][m]+2;
for (int i=m+2; i<=n; ++i)
{
a[1][i]=a[1][i-1]+2;
a[2][i]=a[2][i-1]+2;
}
for (int i=3; i<=n; ++i)
for (int j=m+1; j<=n; ++j)
if (j==m+1)
a[i][j]=a[i-2][n]+2;
else
a[i][j]=a[i][j-1]+2;
}
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()
{
citire();
matrice();
afis();
return 0;
}