Pagini recente » Cod sursa (job #2747000) | Cod sursa (job #2560369) | Cod sursa (job #1742627) | Cod sursa (job #2435610) | Cod sursa (job #1232897)
#include <cstdio>
using namespace std;
int x[20],n,p,k,ok,nr=0;
FILE *f = fopen ("combinari.in","r");
FILE *g = fopen ("combinari.out","w");
void afisare()
{
int i;
nr++;
for (i=1;i<=p;i++)
fprintf(g,"%d ",x[i]);
fprintf(g,"\n");
}
void continuare( int k, int &ok)
{
ok=1;
if ((k>1) && (x[k]<=x[k-1]))
{
ok=0;
}
}
int succesor(int k)
{
if (x[k]<n-p+k)
{
x[k]++;
return 1;
}
return 0;
}
int main()
{
fscanf(f,"%d %d",&n,&p);
k=1;
x[k]=0;
while (k>0)
{
ok=0;
while (!ok && succesor(k))
continuare(k,ok);
if (!ok) k--;
else if (k==p) afisare();
else {
k++;
x[k]=0;
}
}
fclose(f);
fclose(g);
return 0;
}