Pagini recente » Cod sursa (job #1796259) | Cod sursa (job #1100083) | Istoria paginii runda/plictiseala | Istoria paginii runda/antrenament-de-primavarav | Cod sursa (job #484928)
Cod sursa(job #484928)
#include <fstream>
using namespace std;
const char InFile[]="tablete.in";
const char OutFile[]="tablete.out";
const int MaxN=1005;
ifstream fin(InFile);
ofstream fout(OutFile);
int N,K,a[MaxN][MaxN];
inline void swap(int &a, int &b)
{
int c=a;
a=b;
b=c;
}
int main()
{
fin>>N>>K;
fin.close();
if(N%2==0)
{
if(K%2==0)
{
int counter=0;
for(register int i=1;i<=N;++i)
{
for(register int j=1;j<=N;++j)
{
a[i][j]=++counter;
}
}
}
else
{
int counter=0;
for(register int i=1;i<=N;++i)
{
for(register int j=1;j<=K;++j)
{
a[i][j]=++counter;
}
}
for(register int i=1;i<=N;++i)
{
for(register int j=K+1;j<=N;++j)
{
a[i][j]=++counter;
}
if(i%2==0)
{
swap(a[i-1][K],a[i][1]);
}
}
}
}
else
{
if(K%2==0)
{
int counter=0;
for(register int i=1;i<=N;++i)
{
for(register int j=1;j<=K;++j)
{
a[i][j]=++counter;
}
}
for(register int i=1;i<=N;++i)
{
for(register int j=K+1;j<=N;++j)
{
a[i][j]=++counter;
}
}
}
else
{
int counter=0;
for(register int i=1;i<=N-1;++i)
{
for(register int j=1;j<=K;++j)
{
a[i][j]=++counter;
}
if(i%2==0)
{
swap(a[i-1][K],a[i][1]);
}
}
for(register int j=1;j<=K;++j)
{
a[N][j]=++counter;
}
for(register int i=1;i<=N;++i)
{
for(register int j=K+1;j<=N;++j)
{
a[i][j]=++counter;
}
}
swap(a[1][K+1],a[N][K]);
}
}
for(register int i=1;i<=N;++i)
{
for(register int j=1;j<=N;++j)
{
fout<<a[i][j]<<" ";
}
fout<<"\n";
}
fout.close();
return 0;
}