Pagini recente » Cod sursa (job #1331564) | Cod sursa (job #3303302) | Cod sursa (job #3357156) | Cod sursa (job #3311846) | Cod sursa (job #3355576)
#include <map>
#include <set>
#include <list>
#include <cmath>
#include <ctime>
#include <deque>
#include <queue>
#include <stack>
#include <string>
#include <bitset>
#include <cstdio>
#include <limits>
#include <vector>
#include <climits>
#include <cstring>
#include <cstdlib>
#include <fstream>
#include <numeric>
#include <sstream>
#include <iostream>
#include <algorithm>
#include <unordered_map>
using namespace std;
ifstream in("combinari.in");
ofstream out("combinari.out");
int N, K;
vector<int>curr;
vector<int>viz;
void back(int k) {
// afisam daca am completat cele N pozitii
if (k == K) {
for (int i = 0; i < K; i++)
out << curr[i] << " ";
out << "\n";
return;
}
for (int i = 1; i <= N; i++) {
if (!viz[i] && (k == 0 || curr[k - 1] < i)) {
curr[k] = i;
viz[i] = true; // Am folosit numarul i, nu il mai folosim
back(k + 1);
viz[i] = false;
}
}
}
int main() {
/* Enter your code here. Read input from STDIN. Print output to STDOUT */
ios::sync_with_stdio(false);
in >> N >> K;
curr.resize(K);
viz.resize(N + 1, false);
back(0);
in.close();
out.close();
return 0;
}