Cod sursa(job #715330)

Utilizator XladhenianGrigorita Vlad-Stefan Xladhenian Data 17 martie 2012 00:32:36
Problema Submultimi Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
                                                     
#include <fstream>
using namespace std;

long M[20] = {0};
fstream fout;

int OK(long pos)
{
 long t[20] = {0};
 long i;
 for (i = 1;i <= pos;i += 1)
  {
   if (t[M[i]] == 1)
     {
      return 0;
     }
   t[M[i]] = 1;
  }
 for (i = 1;i < pos;i += 1)
  {
   if (M[i+1] <= M[i])
     {
      return 0;
     }
  }
 return 1;
}

void bkt(long n,long k,long pos)
{
 long i;
 if (pos > k)
   {
    for (i = 1;i <= k;i += 1)
     {
      fout << M[i] << " ";
     }
    fout << "\n";
    return;
   }
 for (i = 1;i <= n;i += 1)
  {
   M[pos] = i;
   if (OK(pos))
     {
      bkt(n,k,pos + 1);
     }
  }
}

int main(void)
{
 fstream fin("submultimi.in",ios::in);
 fout.open("submultimi.out",ios::out);
 long N,K;
 fin >> N;
 for (K = 1;K <= N;K += 1)
  {
   bkt(N,K,1);
  }
 fin.close();
 fout.close();
 return 0;
}