Baekjoon algorithm 15649
#include <cstdio>
#include <vector>
using namespace std;
int n, m;
int cnt = 0;
bool visited[10];
vector<int> v;
void dfs();
int main() {
int i, j;
scanf("%d %d", &n, &m);
for(i = 0; i < n; i++) {
visited[i] = false;
}
dfs();
return 0;
}
void dfs() {
int i;
if (v.size() == m) {
for (i=0; i<v.size(); i++) {
printf("%d ", v[i]);
}
printf("\n");
return;
}
for (i=0;i<n;i++) {
if (visited[i]) continue;
visited[i] = true;
v.push_back(i+1);
dfs(i);
v.pop_back();
visited[i] = false;
}
}