Pagini recente » Cod sursa (job #830359) | Cod sursa (job #2629700) | Cod sursa (job #2677900) | Cod sursa (job #1201695) | Cod sursa (job #2659688)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("tablete.in");
ofstream fout ("tablete.out");
int N, K;
int a[1001][1001];
bool f[1000001];
int main()
{
fin >> N >> K;
int nr = 1;
if (K % 2 == 0)
{
for (int i = 1; i <= N; i++)
{
for (int j = 1; j <= K; j++)
{
a[i][j] = nr;
nr++;
}
}
for (int i = 1; i <= N; i++)
{
for (int j = K + 1; j <= N; j++)
{
a[i][j] = nr;
nr++;
}
}
}
else
{
int ok = 0;
if (N % 2)
{
ok = 1;
}
for (int i = 1; i <= N - ok; i++)
{
for (int j = 1; j < K; j++)
{
while(f[nr])nr++;
a[i][j] = nr;
f[nr]=1;
nr++;
}
int newnr=nr+1;
while(f[newnr]||newnr%2)newnr++;
a[i][K]=newnr;
f[newnr]=1;
}
while(f[nr])nr++;
if (ok)
{
for (int j = 1; j < K; j++)
{
while(f[nr])nr++;
a[N][j] = nr;
nr++;
}
int newnr=nr+1;
while(f[newnr]||newnr%2)newnr++;
a[N][K]=newnr;
f[newnr]=1;
}
for (int i = 1; i <= N; i++)
{
for (int j = K + 1; j <= N; j++)
{
if (!a[i][j])
{
while(f[nr])nr++;
a[i][j] = nr;
nr++;
}
}
}
}
for (int i = 1; i <= N; i++)
{
for (int j = 1; j <= N; j++)
{
fout << a[i][j] << " ";
}
fout << '\n';
}
}