Pagini recente » Cod sursa (job #1892885) | Cod sursa (job #212640) | Cod sursa (job #611906) | Cod sursa (job #1090064) | Cod sursa (job #2596934)
#include <fstream>
#include <vector>
class Combination {
public:
Combination(int nn, int nk);
void generate_write(std::ofstream &fout, int i);
private:
std::vector<int> stat, x;
int n, k;
};
Combination::Combination(int nn, int nk) : n(nn), k(nk) {
stat.resize(n + 1);
x.resize(k);
}
void Combination::generate_write(std::ofstream &fout, int i) {
for (int j = 1; j <= n; j++) {
if (stat[j] == 1 || (i!=0 && x[i-1]>j)) continue;
x[i] = j;
stat[j] = 1;
if (i != k-1) generate_write(fout, i + 1);
else {
for(int e:x) fout<<e<<" ";
fout << "\n";
}
stat[j] = 0;
}
}
int main() {
std::ifstream fin("combinari.in");
int n, k;
fin >> n >> k;
fin.close();
Combination com(n, k);
std::ofstream fout("combinari.out");
com.generate_write(fout, 0);
fout.close();
}