Cod sursa(job #1517220)

Utilizator MickeyTurcu Gabriel Mickey Data 3 noiembrie 2015 23:04:26
Problema Combinari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include<iostream>
#include<fstream>
#include<stdio.h>

int k, n,x[19],i,as,ev,d;
using namespace std;
void valid(int x[19], int k, int &ev)
{
	int i;
	ev = 1;
	for (i = 1; i <= k - 1; i++)
		if (x[i] == x[k])
			ev = 0;
}
void succ(int k, int x[19], int &as)
{
	if (x[k]<n) {
		as = 1;
		x[k]++;
	}
	else {
		as = 0;
	}

}

int main() {

	ifstream f("combinari.in");
	ofstream g("combinari.out");
	f >> n;
	f >> d;
	k = 1;
	x[k] = 0;
	while (k>0) {
		do {
			succ(k, x, as);
			if (as)
				valid(x, k, ev);
		} while (as && !ev);

		if (as) {
			if (k == d)
			{
				for (i = 1; i <= k; i++)
					g << x[i] << ' ';
				g << '\n';
			}
			else
			{
				k++;
				x[k] = x[k - 1];
			}
		}
		else
			k--;
	}




	return 0;
}