Cod sursa(job #1098598)

Utilizator negrea.andreiAndrei Negrea negrea.andrei Data 4 februarie 2014 22:09:00
Problema Combinari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include<fstream>
using namespace std;
#define N 20

ifstream f("combinari.in");
ofstream g("combinari.out");

void print(int A[], int n)
{
	for(int i = 1; i <= n; i++)
	{
		g << A[i] << " ";
	}
	g << "\n";
}

void perm(int A[], int i, int n, int m, int frecv[])
{
	for(int j = max(A[i - 1], 1); j <= m; j++)
	{
		A[i] = j;
		if (!frecv[j])
		{
			frecv[j]++;
			if (i == n)
			{
				print(A, n);
			}
			else
			{
				perm(A, i + 1, n, m, frecv);
			}
			frecv[j]--;
		}
	}
}

int main()
{
	int A[N], n, frecv[N], m;
	f >> m >> n;

	for(int i = 0; i <= m; i++)
	{
		frecv[i] = 0;
	}
	perm(A, 1, n, m, frecv);
}