Cod sursa(job #948570)

Utilizator FoaiaFoaia de Hartie Foaia Data 11 mai 2013 02:33:33
Problema Combinari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.03 kb
#include <vector>
#include <stdio.h>
 
using namespace std;
 
int n, k;
vector <int> elSet;
 
class Combinations
{
    int N, K;
    vector <int> sol;
    
    void next(int level, int first)
    {
        if (level == k)
        {
            for (int i = 0; i < k; i++)
                printf("%d ", sol[i]);
            printf("\n");
            
            return;
        }
        
        for (int i = first; i < N; i++)
        {
            sol[level] = elSet[i];
                
            next(level + 1, i + 1);
        }
    }
    
public:
    void generate(int n, int k, vector <int> v)
    {
        N = n;
        K = k;
        sol = vector <int>(K);
        elSet = v;
        
        next(0, 0);
    }
};
 
int main()
{
freopen("combinari.in", "r", stdin);
freopen("combinari.out", "w", stdout);
    scanf("%d", &n);
    scanf("%d", &k);
    
    for (int i = 1; i <= n; i++)
        elSet.push_back(i);
        
    Combinations().generate(n, k, elSet);
    
    return 0;
}