Cod sursa(job #999832)

Utilizator toncuvasileToncu Vasile toncuvasile Data 21 septembrie 2013 15:39:25
Problema Submultimi Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include<fstream>
using namespace std;

int stiva[20],n,k;
ofstream outFile;

bool valid(int nivel);
void print();
void generare(int nivel);

int main(){
   ifstream inFile("submultimi.in");
   inFile>>n;
   outFile.open("submultimi.out");
   for(k=1;k<=n-1;k++) generare(1);
   for(int i=1;i<=n;i++) outFile<<i<<" ";
}

bool valid(int nivel){
   bool t=true;
   for(int i=1;i<nivel;i++) if(stiva[nivel]==stiva[i] || stiva[i]>stiva[i+1]) t=false;
   return t;
}

void print(){
   for(int i=1;i<=k;i++) outFile<<stiva[i]<<" ";
   outFile<<"\n";
}

void generare(int nivel){
    if(nivel==k+1) print();
       else for(int i=1;i<=n;i++){
          stiva[nivel]=i;
          if(valid(nivel)) generare(nivel+1);
       }

}