ZJANS

d115. 數字包牌

Medium Last Update: 2026/01/01
cpp

# 題目簡述


解法一

✅ 完整代碼

評分結果(參考) : AC (1ms, 320KB)

#include<bits/stdc++.h>
#define int long long
using namespace std;

int n, m;
vector<int> a;
vector<int> ans;

void f(int idx, int x, int k){
    if(k == m){
        for(int i : ans) cout << i << " ";
        cout << "\n";
        return;
    }
    
    for(int i=x; i<n; i++){
        ans[idx] = a[i];
        f(idx+1, i+1, k+1);
    }
}

signed main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    
    while(true){
        cin >> n;
        if(n == 0) break;
        
        a.resize(n);
        for(int& i : a){
            cin >> i;
        }
        sort(a.begin(), a.end());
        
        cin >> m;
        ans.resize(m);
        f(0, 0, 0);
        cout << "\n";
    }
    
    return 0;
}