Pagini recente » Cod sursa (job #2072) | Cod sursa (job #3221164) | Cod sursa (job #1923932) | Cod sursa (job #147529) | Cod sursa (job #237427)
Cod sursa(job #237427)
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <set>
using namespace std;
int a[1024][1024];
int N, K;
set<int> A;
inline void add(int x) { A.insert(x); }
inline int is(int x) { return A.find(x) != A.end(); }
void dump()
{
for (int i = 0; i < N; i++)
{
for (int j = 0; j+1 < N; j++)
fprintf(stdout,"%d ", a[i][j]);
fprintf(stdout,"%d\n", a[i][N-1]);
}
}
int main()
{
freopen("tablete.in", "r", stdin);
freopen("tablete.out", "w", stdout);
scanf("%d %d", &N, &K);
//fill the k'th column
int x;
for (int i = 0; i < N; i++)
{
x = (i+1)*K;
if (x&1) ++x;
a[i][K-1] = x;
add(x);
}
// dump();
x = 0;
for (int i = 0; i < N; i++)
for (int j = 0; j+1 < K; j++)
{
do ++x; while (is(x));
a[i][j] = x;
}
for (int i = 0; i < N; i++)
for (int j = K; j < N; j++)
{
do ++x; while (is(x));
a[i][j] = x;
}
dump();
return 0;
}