Cod sursa(job #1414290)

Utilizator MailatMailat Radu Mailat Data 2 aprilie 2015 15:00:56
Problema Combinari Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
//Program pentru generarea combinarilor(backtracking)
#include <fstream>
using namespace std;
int n, p;
int a[10], sol[10];
ofstream fout("combinari.out");
void Afiseaza()
{
    for(int i = 1; i <= p; i++)
    {
        fout << sol[i] << " ";
    }
    fout << "\n";
}

void backtrack(int k)
{
    if(k == p+1)
    {
        Afiseaza();
    }
	else
	{
		if(k>1)
			sol[k]=sol[k-1];
		else sol[k]=0;
		while(sol[k]<n-p+k)
		{
			sol[k]++;
			backtrack(k+1);
		}
	}

}

int main()
{
    ifstream fin("combinari.in");
    fout << "n = "; fin >> n;
    fout << "p = "; fin >> p;
    backtrack(1);
    return 0;
}