Cod sursa(job #1228593)

Utilizator antirsi96Sergiu Marin antirsi96 Data 14 septembrie 2014 17:41:05
Problema Combinari Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.17 kb
#include <iostream>
#include <iomanip>
#include <fstream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cctype>
#include <cstring>
#include <ctime>
#include <cassert>
#include <string>
#include <sstream>
#include <vector>
#include <map>
#include <set>
#include <stack>
#include <algorithm>
#include <utility>
#include <queue>
#include <deque>
#include <list>
#include <iterator>
#include <limits>
#include <numeric>
#include <functional>

using namespace std;

#define nl "\n"

typedef long long ll;
typedef unsigned long ulong;
typedef unsigned int uint;
typedef unsigned char uchar;

const double PI = acos(-1.0);

ifstream fin("combinari.in");
ofstream fout("combinari.out");

int arr[100],n,p;

void print(int k)
{
   for(int i=1;i<=k;i++)
      cout<<arr[i]<<" ";
   cout<<nl;
}

int valid(int k)
{
   for(int i=1;i<=k-1;i++)
      if(arr[i]==arr[k])
	 return 0;
   return 1;
}

void bk(int k)
{
   int i;
   int a;
   if(k>1) a=arr[k-1];
   else a=1;
   for(i=a;i<=n;i++)
   {
      arr[k]=i;
      if(valid(k))
	 if(k==p)
	    print(k);
	 else bk(k+1);
   }
}

int main()
{
   fin>>n>>p;
   bk(1);
}