Pagini recente » Cod sursa (job #2989552) | Cod sursa (job #1151668) | Cod sursa (job #1333739) | Cod sursa (job #2520168) | Cod sursa (job #238480)
Cod sursa(job #238480)
#include<fstream.h>
#define InFile "tablete.in"
#define OutFile "tablete.out"
#define Nmax 1001
int n,k,uz[Nmax*Nmax];
long a[Nmax][Nmax],nr,nr2;
int main()
{
ifstream fin(InFile);
ofstream fout(OutFile);
fin>>n>>k;
int i,j,ok;
for(i=1;i<=n;i++)
{ok=1; nr=(i*k%2==0)?(i*k):(i*k+1);
do
{if(!ok) nr+=2;
ok=1;
if(uz[nr]) while(uz[nr]) nr+=2;
a[i][k]=nr; uz[nr]=1; ;
for(j=k-1;j>=1&&ok;j--)
{nr2=a[i][j+1]-(k-j);
if(uz[nr2]) while(uz[nr2]) nr2--;
else {a[i][j]=nr2; uz[nr2]=1;}
if(nr<=1&&j>1) ok=0;
else {a[i][j]=nr2; uz[nr2]=1;}
}
}while(ok==0);
}
for(i=1;i<=n;i++)
{ok=1;nr=0;
for(j=1;j<=k;j++) fout<<a[i][j]<<" ";
for(j=i*k;j<=n*n&&ok;j++)
{if(!uz[j]) {fout<<j<<" ";nr++; uz[j]=1;}
if(nr==n-k) ok=0;
}
fout<<"\n";
}
fout.close(); fin.close();
return 0;
}