Pagini recente » Cod sursa (job #660557) | Cod sursa (job #1209899) | Cod sursa (job #1178660) | Cod sursa (job #3139359) | Cod sursa (job #1741234)
#include <fstream>
#include <iostream>
#include <vector>
using namespace std;
int n, p;
ifstream infile;
ofstream outfile;
void back(int k, vector<int> &vect, vector<bool> &valid) {
if (k == p) {
for (int i = 0; i < p; i ++)
outfile << vect[i] << " ";
outfile << endl;
return;
}
else
for (int i = 1; i <= n; i ++) {
if (!valid[i - 1] && (k == 0 || i > vect[k - 1])) {
vect.push_back(i);
valid[i - 1] = true;
back(k + 1, vect, valid);
valid[i - 1] = false;
vect.pop_back();
}
}
}
int main() {
infile.open("combinari.in");
outfile.open("combinari.out");
infile >> n >> p;
vector<int> vect;
vector<bool> valid(n, false);
back(0, vect, valid);
return 0;
}