Cod sursa(job #2441471)

Utilizator nicolaee2Martinescu Nicolae nicolaee2 Data 20 iulie 2019 15:24:33
Problema Submultimi Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.04 kb
#include <iostream>
#include <fstream>
#include<string.h>
using namespace std;

ifstream fin("submultimi.in");
ofstream fout("submultimi.out");

int n;
int as,ev;
int st[1000];
int k=0;
int m;

void init()
{
   st[k]=0;
}
int succesor() {

   if(st[k]<n)
   {
      st[k] = st[k]+1;
      return 1;
   }else return 0;
}
int valid() {

   for(int i=1;i<k;i++)
      if(st[i]==st[k]) return 0;
   if(st[k]<st[k-1]) return 0;
   return 1;

}
int solutie()
{
   if(k==m)
      return 1;
   else return 0;
}
void afisare(){

   for(int i=1;i<=m;i++)
      fout<<st[i] <<" ";
   fout<<'\n';

}


void back(){
k=1;
init();
while(k>0)
{

   as=1;
   ev=0;
   while(as&&!ev)
   {
      as = succesor();
      if(as) ev = valid();
   }
   if(as) {

      if(solutie())
         {
            afisare();
         }
      else {

         k++;
         init();

      }

   }else {

      k--;

   }
}


}

int main()
{

   fin>>n;
   for(m=1;m<=n;m++)
      back();

   return 0;
}