
예제 입력 1
3 1
4 5 2
예제 출력 1
2
4
5
예제 입력 2
4 2
9 8 7 1
예제 출력 2
1 7
1 8
1 9
7 8
7 9
8 9
예제 입력 3
4 4
1231 1232 1233 1234
예제 출력 3
1231 1232 1233 1234
동일한 것
for (int i = 0; i < vec.size(); i++) {
cout << vec[i] << ' ';
}
또는
for (int v : vec) { // 복사 발생
cout << v << ' ';
}
효율화 안전화 특면에서
for (const int& v : vec)
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int line, get_out;
vector<int> nums;
vector<int> vec;
void NM(int a, int start)
{
if(a == get_out)
{
for(int i = 0; i < get_out; i++)
cout << vec[i] << " ";
cout << "\n";
return;
}
for(int i = start; i < line; i++)
{
vec[a] = nums[i];
NM(a + 1, i + 1);
}
}
int main()
{
ios_base::sync_with_stdio(0);
cin >> line >> get_out;
nums.resize(line);
vec.resize(get_out);
for(int i = 0; i < line; i++)
cin >> nums[i];
sort(nums.begin(), nums.end());
NM(0, 0);
}