Pagini recente » Cod sursa (job #2408198) | Cod sursa (job #754895) | Cod sursa (job #1917108) | Cod sursa (job #1161260) | Cod sursa (job #984617)
Cod sursa(job #984617)
#include <fstream>
#include <algorithm>
#include <stdlib.h>
#include <math.h>
#include <assert.h>
using namespace std;
ifstream fi ("tablete.in");
ofstream fo ("tablete.out");
const int dim = 1005;
int N, K, A[dim][dim], nr = 1;
void cit ()
{
fi >> N >> K;
}
void rez ()
{
int i, j;
for (i = 1; i <= N; i++)
{
if (A[i][1] == 0) A[i][1] = nr++;
for (j = 2; j < K; j++) A[i][j] = nr++;
if (nr & 1)
{
if (i+1 <= N) A[i+1][1] = nr++;
else A[1][K+1] = nr++;
}
A[i][K] = nr++;
}
for (i = 1; i <= N; i++)
{
for (j = K + 1; j <= N; j++)
if (A[i][j] == 0)
A[i][j] = nr++;
}
}
void ver ()
{
int i, j;
if (nr != N * N + 1) assert (0);
for (i = 1; i <= N; i++)
{
if (!(A[i][K] & 1)) assert (0);
for (j = 2; j <= N; j++)
if (A[i][j] < A[i][j-1])
assert (0);
}
}
void afi ()
{
int i, j;
for (i = 1; i <= N; i++)
{
for (j = 1; j <= N; j++)
fo << A[i][j] << ' ';
fo << '\n';
}
}
int main ()
{
cit ();
rez ();
afi ();
return 0;
}