Pagini recente » Cod sursa (job #1443628) | Cod sursa (job #2114209) | Cod sursa (job #2934798) | Cod sursa (job #477616) | Cod sursa (job #1886833)
#include <bits/stdc++.h>
using namespace std;
#define in "tablete.in"
#define out "tablete.out"
#define in1 "tabele.in"
#define out1 "tabele.out"
FILE *fin = fopen(in, "r"), *fout = fopen(out, "w");
#define MAX_N 1001
int v[MAX_N][MAX_N];
bool val[MAX_N * MAX_N];///0 -> este disponibil, 1 -> nu este disponibil
vector <int> pare;
int N, K, nn, ind = 1;
inline int next() {
while(val[ind] == 1 && ind <= nn)
ind++;
val[ind] = 1;
return ind;
}
inline void solve() {
for(int i = 1;i <= nn;i++) {
if(!(i & 1))
pare.push_back(i);
}
int beg = K - 1;
for(int i = 1;i <= N;i++)
v[i][K] = pare[beg + i - 1], val[pare[beg + i - 1]] = 1;
for(int i = 1;i <= N;i++) {
for(int j = 1;j < K;j++)
v[i][j] = next();
}
for(int i = 1;i <= N;i++)
for(int j = K + 1;j <= N;j++)
v[i][j] = next();
}
int main() {
fscanf(fin, "%d%d", &N, &K);
nn = N * N;
solve();
for(int i = 1;i <= N;i++) {
for(int j = 1;j <= N;j++) {
fprintf(fout, "%d", v[i][j]);
fputc(' ', fout);
}
fputc('\n', fout);
}
fclose(fin);
fclose(fout);
return 0;
}