Pagini recente » Cod sursa (job #1374383) | Cod sursa (job #1575368) | Cod sursa (job #941071) | Cod sursa (job #2232356) | Cod sursa (job #237002)
Cod sursa(job #237002)
#include<iostream>
#include<stdio.h>
#define Nmax 1001
FILE *f=fopen("tablete.in","r"),*g=fopen("tablete.out","w");
unsigned int a[Nmax][Nmax];
unsigned short v[Nmax*Nmax];
int main()
{
int n,k,i,j,s=0,aux;
fscanf(f,"%d %d",&n,&k);
if(!(k%2))
{
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
s++,fprintf(g,"%d ",s);
fprintf(g,"\n");
}
return 0;
}
else
{
if(!(n%2))
{
aux=1;
for(i=2;i<=n;i+=2)
{
for(j=1;j<k;j++)
a[i-1][j]=aux,v[aux]=1,aux++;
aux++;
a[i-1][k]=aux;
v[aux]=1;
aux--;
for(j=1;j<k;j++)
a[i][j]=aux,v[aux]=1,aux+=2;
a[i][k]=aux-1;
v[aux-1]=1;
}
}
if(n%2)
{
aux=1;
for(i=2;i<=n-1;i+=2)
{
for(j=1;j<k-1;j++)
a[i-1][j]=aux,v[aux]=1,aux++;
aux++;
a[i-1][k]=aux;
v[aux]=1;
aux--;
for(j=1;j<k;j++)
a[i][j]=aux,v[aux]=1,aux+=2;
a[i][k]=aux-1;
v[aux-1]=1;
}
aux=(n-1)*k;int aux1=1;
for(j=1;j<=k;j++)
a[n][j]=aux+aux1,aux1++,v[a[n][j]]=1;
a[1][k+1]=n*k,v[n*k]=1;
}
int i1=1,j1=k,n1=n*n;
for(i=1;i<=n1;i++)
if(!v[i])
{
j1++;
if(j1>n)
j1=k+1,i1++;
a[i1][j1]=i;
}
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
fprintf(g,"%d ",a[i][j]);
fprintf(g,"\n");
}
return 0;
}