less than 1 minute read

15650

#include <cstdio>
#include <vector>
using namespace std;

int n, m;
int cnt = 0;
bool visited[10];
vector<int> v;

void dfs(int n);
int main() {
	int i, j;
	
	scanf("%d %d", &n, &m);
	
	for(i = 0; i < n; i++) {
		visited[i] = false;
	}
	
	dfs(0);
	return 0;
}

void dfs(int start) {
	int i, j;
	if (v.size() == m) {
		for (i=0; i<v.size(); i++) {
			printf("%d ", v[i]);
		}
		printf("\n");
		return;
	}
	
	for (i=start; i<n;i++) {
		if (visited[i]) continue;
		visited[i] = true;
		v.push_back(i+1);
		dfs(i);
		v.pop_back();
		visited[i] = false;
	}
}

Categories:

Updated: