N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다.
입력
첫째 줄에 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8)
둘째 줄에 N개의 수가 주어진다. 입력으로 주어지는 수는 10,000보다 작거나 같은 자연수이다.
직접 숫자 받아옴 + 오름차순 정렬
N과 M(2)와 유사하게 작성하면 됨
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int n, m;
int a[8];
vector<int> seq;
void func(int index, int size) {
if (size == m)
{
for (int i : seq)
printf("%d ", i);
printf("\n");
return;
}
for (int i = index; i < n; i++)
{
seq.push_back(a[i]);
func(i + 1, size + 1);
seq.pop_back();
}
}
int main() {
scanf("%d %d", &n, &m);
for (int i = 0; i < n; i++)
scanf("%d", &a[i]);
sort(a, a + n);
func(0, 0);
return 0;
}