Pagini recente » Cod sursa (job #1080336) | Cod sursa (job #2835193) | Cod sursa (job #2196436) | Cod sursa (job #2889354) | Cod sursa (job #1841152)
#include <fstream>
#define MAXN 1005
using namespace std;
ifstream f("tablete.in");
ofstream g("tablete.out");
int A[MAXN][MAXN];
int buildUpperLeft(int A[][MAXN], int lin, int col) {
//
int cont = 1;
for (int i = 1; i < col - 1; i++) {
for (int j = 1; j <= lin; j++) {
A[j][i] = cont++;
}
}
//
for (int i = 1; i <= lin; i++) {
A[i][col - 1] = cont++;
A[i][col] = cont++;
}
return cont;
}
int main()
{
int n, k, cont;
f >> n >> k;
if (n % 2 == 0 || (n % 2 == 1 && k % 2 == 0)) {
//
cont = buildUpperLeft(A, n, k);
for (int i = k + 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
A[j][i] = cont++;
}
}
} else {
//
cont = buildUpperLeft(A, n - 1, k);
for (int i = 1; i < k; i++) {
A[n][i] = cont++;
}
A[n][k] = ++cont;
A[1][k+1] = cont - 1;
for (int i = k + 1; i <= n; i++) {
for (int j = (i == k + 1) ? 2 : 1; j <= n; j++) {
A[j][i] = ++cont;
}
}
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
g << A[i][j] << " ";
}
g << endl;
}
return 0;
}