Pagini recente » Cod sursa (job #837776) | Cod sursa (job #1170522) | Cod sursa (job #3131852) | Cod sursa (job #156014) | Cod sursa (job #234230)
Cod sursa(job #234230)
#include <stdio.h>
int a[1001][1001],n,k,i,j,p;
void readd(),solve(),solve11(),solve10(),solve01(),solve00(),afisare();
int main()
{
readd();
solve();
return 0;
}
void readd()
{
freopen("tablete.in","r",stdin);
freopen("tablete.out","w",stdout);
scanf("%d%d",&n,&k);
}
void solve()
{
if(n&1)
{ if(k&1)solve11();
else solve10();
}
else
{ if(k&1)solve01();
else solve00();
}
}
void solve11()
{
for(i=1;i<=n;i++)
for(j=1;j<k;j++)
a[i][j]=++p;
a[n][k-1]++;
a[1][k]=a[n][k-1]-1;
for(i=2;i<=n;i++)a[i][k]=a[i-1][k]+2;
for(i=1;i<=n;i++)a[i][k+1]=a[i][k]+3;
p=a[n][k+1];
for(i=1;i<=n;i++)
for(j=k+2;j<=n;j++)
a[i][j]=p++;
a[1][k+2]--;
afisare();
}
void solve10()
{
for(i=1;i<=n;i++)
for(j=1;j<=k;j++)
a[i][j]=++p;
for(i=1;i<=n;i++)
for(j=k+1;j<=n;j++)
a[i][j]=++p;
afisare();
}
void solve01()
{
for(i=1;i<=n;i++)
for(j=1;j<=k-2;j++)
a[i][j]=++p;
for(i=1;i<=n;i++)
for(j=k-1;j<=k;j++)
a[i][j]=++p;
for(i=1;i<=n;i++)
for(j=k+1;j<=n;j++)
a[i][j]=++p;
afisare();
}
void solve00()
{
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
a[i][j]=++p;
afisare();
}
void afisare()
{
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
printf("%d ",a[i][j]);
printf("\n");
}
}