Cod sursa(job #710731)

Utilizator misinoonisim necula misino Data 10 martie 2012 17:33:50
Problema Combinari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include<fstream>
using namespace std;
ifstream f("combinari.in");
ofstream g("combinari.out");
int n,p,x[20];
int pc(int k)
{if(k<=p&&x[k]<n)
{++x[k];
return 1;
}
return 0;
}
int valid(int k)
{int i;
for(i=1;i<k;++i)
	if(x[i]==x[k])
		return 0;
if(x[k]<x[k-1])
	return 0;
return 1;
}
int sol(int k)
{if(k==p)
	return 1;
return 0;
}
void afis(int k)
{int i;
for(i=1;i<=k;++i)
	g<<x[i]<<' ';
g<<'\n';
}
void back()
{int k,ok;
k=1;
x[k]=0;
while(k>0)
{ok=0;
while(ok==0&&pc(k))
	if(valid(k))
		ok=1;
if(ok==0)
	--k;
else
	if(sol(k))
		afis(k);
	else
	{++k;
	x[k]=0;
	}
}}
int main()
{f>>n>>p;
back();
f.close();
g.close();
return 0;
}