Pagini recente » Cod sursa (job #1566425) | Cod sursa (job #150345) | Cod sursa (job #84204) | Cod sursa (job #2770953) | Cod sursa (job #230665)
Cod sursa(job #230665)
#include <fstream>
using namespace std;
int main() {
ifstream fin("tablete.in");
ofstream fout("tablete.out");
int n, k;
fin >> n >> k;
if (n % 2 == 0 && k % 2 == 0) {
//caz simplu afiseaza in ordine
int i, j;
int p = 1;
for (i = 1; i <= n; ++i) {
for (j = 1; j <= n; ++j) fout << p++ << " ";
fout << '\n';
}
return 0;
}
//caz 2
if (n % 2 == 0) {
// k >= 3 k <= n - 1 impar
int p = 1;
int i, j;
for (i = 1; i <= n + 1; ++i) if (i != k) fout << i << " ";
fout << '\n';
p = n + 2;
for (i = 2; i < n - 1; ++i) {
for (j = 1; j <=n; ++j) fout << p++ << " ";
fout << '\n';
}
//penultima
for (j = 1; j < n; ++j) fout << p++ << " ";
fout << n * n << " \n";
//ultima linie
fout << k << " ";
for (j = 2; j <= n; ++j) fout << p++ << " ";
fout << '\n';
return 0;
}
//merge pana aci
if (k % 2 == 0) {
//caz simplu
int c = n * n;
int p = 1;
int i, j;
for (i = 1; i <= n; ++i) {
for (j = 1; j < n; ++j) fout << p++ << " ";
fout << c << " "; c--;
fout << '\n';
}
return 0;
}
//ultimu caz k impar
if (k % 2 == 1) {
int c = n * n;
int p = 1;
int i, j;
//prima linie
for (i = 1; i <= n; ++i) if (i != k) fout << p++ << " "; else p++;
fout << c << " "; fout << '\n'; c--;
//
for (i = 2; i < n - 1; ++i) {
for (j = 1; j < n; ++j) fout << p++ << " ";
fout << c << " "; c--;
fout << '\n';
}
//penultima
for (j = 1; j < n - 1; ++j) fout << p++ << " ";
fout << c - 1 << " " << c << " "; fout << '\n'; c-=2;
//ultima linie
fout << k << " ";
for (j = 2; j < n; ++j) fout << p++ << " ";
fout << c << " "; fout << '\n'; c--;
}
return 0;
}