less than 1 minute read

15651

#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 < m; i++) {
		visited[i] = false;
	}

	dfs();
	return 0;
}

void dfs() {
	int i;
	if (v.size() == m) {
		for (i = 0; i < m; i++) {
			printf("%d ", v[i] + 1);
		}
		printf("\n");
		return;
	}

	for (i = 0; i < n; i++) {
		if (visited[i]) continue;

		if (v.size() < m && !visited[i]) { v.push_back(i); }
		else {
			v.push_back(i);
			visited[i] = true;
		}
		dfs();
		visited[i] = false;
		v.pop_back();
	}
}

Categories:

Updated: