hades

15654๋ฒˆ: N๊ณผ M (5) ๋ณธ๋ฌธ

๐Ÿ‘Š PS/Algorithm

15654๋ฒˆ: N๊ณผ M (5)

hades1 2024. 8. 12. 21:23

๐Ÿฅ… ๋ฌธ์ œ

https://www.acmicpc.net/problem/15654

 

๐Ÿ” ์„ค๊ณ„

์ „ํ˜•์ ์ธ ๋ฐฑํŠธ๋ž˜ํ‚น ๋ฌธ์ œ์ด๋‹ค. ์‚ฌ์ „ ์ˆœ์œผ๋กœ ์ถœ๋ ฅํ•ด์•ผ ํ•˜๋ฏ€๋กœ, ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ ํ›„, ๋ฐฑํŠธ๋ž˜ํ‚น์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

 

๐Ÿ‘Š ํ’€์ด

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int n, m;
vector<int> number(8);
vector<bool> visited(8);
vector<int> temp;

void bt(int count) {
	if (count == m) {
		for (int i = 0; i < m; i++) {
			cout << temp[i] << " ";
		}
		cout << "\n";
	}
	for (int i = 0; i < n; i++) {
		if (!visited[i]) {
			visited[i] = true;
			temp.push_back(number[i]);
			bt(count + 1);
			temp.pop_back();
			visited[i] = false;
		}
	}
}

int main(void)
{
	ios_base::sync_with_stdio(false);
	cin.tie(nullptr);
	cin >> n >> m;
	for (int i = 0; i < n; i++) {
		cin >> number[i];
	}
	sort(number.begin(), number.begin() + n);
	
	bt(0);
	
	return 0;
}