본문 바로가기

카테고리 없음

백준 15654번

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

int N;
int M;
int arr[8];
bool check[8] = { false, };
vector<int> save;


void Permutation(int n, int r)
{
    if (n == r)
    {
        for (int i = 0; i < save.size(); i++)
        {
            printf("%d",save[i]);
            printf(" ");
        }
        printf("\n");
        
    }

    for (int i = 0; i < N; i++)
    {
        if (check[i] == true) continue;
        check[i] = true;
        save.push_back(arr[i]);
        Permutation(n + 1, r);
        save.pop_back();
        check[i] = false;
    }
}

int main(void)
{
    cin >> N;
    cin >> M;

    for (int i = 0; i < N; i++) {
    
        int temp;
        cin >> temp;
        arr[i] = temp;
    
    }

    for (int i = 0; i < N; i++) {

        for (int j = i + 1; j < N; j++) {
            if (arr[j] < arr[i]) {
                int tmp = arr[j];
                arr[j] = arr[i];
                arr[i] = tmp;
            }

        }
    }

    

    Permutation(0, M);


}