Pagini recente » Cod sursa (job #2988208) | Cod sursa (job #2623882) | Cod sursa (job #2801160) | Cod sursa (job #1232058) | Cod sursa (job #2660484)
#include <iostream>
#include <fstream>
#include <algorithm>
const int KMAX = 3;
const int NMAX = 9;
std::ofstream out("bilete.out");
int n, k;
std::pair<int, int> sol[1 + KMAX], flipped[1 + NMAX];
void read() {
std::ifstream in ("bilete.in");
in >> n >> k;
in.close();
}
void back(int step) {
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= n; ++j) {
if (10 * i + j > 10 * sol[step - 1].first + sol[step - 1].second) {
sol[step] = {i, j};
if (step == k) {
for (int ii = 1; ii <= k; ++ii)
flipped[ii] = {sol[ii].first, n - sol[ii].second + 1};
std::sort(flipped + 1, flipped + k + 1);
bool show = true;
for (int ii = 1; ii <= k; ++ii) {
if (sol[ii] < flipped[ii]) {
show = true;
break;
} else if (sol[ii] > flipped[ii]) {
show = false;
break;
}
}
if (show) {
for (int ii = 1; ii <= k; ++ii)
out << sol[ii].first << sol[ii].second;
out << '\n';
}
} else
back(step + 1);
}
}
}
}
int main() {
read();
back(1);
return 0;
}