Cod sursa(job #360259)

Utilizator petrepetreoctav d petrepetre Data 30 octombrie 2009 18:44:15
Problema Combinari Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream I ("combinari.in");
ofstream O ("combinari.out");
int n, p, comb[10], use[10];
void show();
void back (int k);
int check();

int main () {
    I >> n >> p;
    back(1);
    return 0;
}

void show () {
     for (int i=1;i<=p;i++) 
         O << comb[i] <<" ";
     O<<"\n";
}

void back (int k) {
     int i;
     for (i=1;i<=n;i++) {
         if (use[i]==0) {
             use[i]=1;
             comb[k]=i;
             if (k==p && check()) 
                 show ();
             else
                 back(k+1);
             use[i]=0;
         }                     
     }
} 
int check () {
     for (int i=1;i<p;i++)
         if (comb[i+1]<comb[i])
         return 0;
     return 1;
     }