Cod sursa(job #158299)

Utilizator vlad_olteanVladimir Oltean vlad_oltean Data 13 martie 2008 16:21:15
Problema Combinari Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include<stdio.h>

int st[10];
int n,k,p;

int valid(int k)
{
     int i;
     for(i=0;i<=k-1;i++)
          if((st[k]==st[i])||st[i]>=st[i+1]) return 0;    //Verific aparitii precedende ale numarului
          
     return 1;
}

int main()
{
     int ev;

     freopen("combinari.in","r",stdin);
     freopen("combinari.out","w",stdout);

     scanf("%d %d",&n,&p);
     k=1;st[k]=0;
     
     while(k>0)
     {    do{
               st[k]++;
               ev=valid(k);
          } while((!ev)&&(st[k]<=n));
          
          if((ev)&&(st[k]<=n))
          {     if(k==p)
		{    for(int i=1;i<=k;i++) printf("%d ",st[i]);
		     printf("\n");
		}
                else
                {    k++; st[k]=0;}
          } else k--;
     }
     return 0;
}