서의 공간

[백준] 15663_N과 M (9) 본문

Algorithm/백준

[백준] 15663_N과 M (9)

홍서의 2021. 2. 6. 04:30

[문제]: 15663번: N과 M (9) (acmicpc.net)

 

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

int n, m;
int vec[10];
int arr[10];
bool picked[10];

void solution(int k)
{
	if (k == m) {
		for (int i = 0; i < m; ++i)
			cout << arr[i] << ' ';
		cout << '\n';
		return;
	}

	int p = -1;

	for (int i = 0; i < n; ++i) {
		if (!picked[i] && p != vec[i]) {
			p = vec[i];
			arr[k] = vec[i];
			picked[i] = 1;
			solution(k + 1);
			picked[i] = 0;
		}
	}
}

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

'Algorithm > 백준' 카테고리의 다른 글

[백준] 15665_N과 M (11)  (0) 2021.02.06
[백준] 15664_N과 M (10)  (0) 2021.02.06
[백준] 15657_N과 M (8)  (0) 2021.02.06
[백준] 15656_N과 M (7)  (0) 2021.02.06
[백준] 15655_N과 M (6)  (0) 2021.02.06
Comments