CodeVS4064 全排列 題解

#include <cstdio>
using namespace std;

bool flag[10+2];
int N, M, ans[10+2]={0};

void Array(int n){
    if(n>M){
        printf("%d", ans[1]);
        for(int i = 2; i<=M; ++i) printf(" %d", ans[i]);
        printf("\n");
        return;
    }
    for(int i = 1; i<=N; ++i){
        if(!flag[i] && i>ans[n-1]){
            flag[i] = true;
            ans[n] = i;
            Array(n+1);
            flag[i] = false;
        }
    }
}

int main(){
    scanf("%d %d", &N, &M);
    Array(1);
    return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章