Pagini recente » Cod sursa (job #1229690) | Cod sursa (job #1229291) | Cod sursa (job #2138259)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("combinari.in");
ofstream out("combinari.out");
bool as,ev; int n,k,p;
void valid(int k, int v[],bool &ev)
{ ev = true;
if ( k> 0 && v[k-1] >= v[k])
ev = false;
}
void init( int k, int v[])
{
v[k] = 0;
}
void suc(int k, int v[], bool &as)
{
if( v[k]< n)
{
v[k]++;
as = true;
}
else
as = false;
}
void tipar(int k, int v[])
{
int i;
for(i = 0 ; i < p ; i ++)
out << v[i] <<" ";
out<<"\n";
}
bool solutie(int k)
{
if(k == p-1)
return true;
return false;
}
int main()
{
in >> n >> p;
int v[n];
k = 0;
init(k,v);
while( k>-1 )
{
do
{
suc(k,v,as);
if(as)
valid(k,v,ev);
}
while( as && !(as && ev));
if (as)
if(solutie(k))
tipar(k,v);
else
{
k++;
init(k,v);
}
else
{
init(k,v);
k--;
}
}
return 0;
}