Cod sursa(job #1579857)

Utilizator VicktorVictor Teodor Stoian Vicktor Data 25 ianuarie 2016 09:50:46
Problema Heapuri Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>

using namespace std;

ifstream fin("partitiimultime.in");
ofstream fout("partitiimultime.out");
int x[11],n;
void afisare(){
    int OK;
for(int i=1;i<=n;i++){
        OK=0;
    for(int j=1;j<=n;j++)
        if(x[j]==i)
            {
                fout<<j;
                OK=1;
            }
    if(OK==1)
    fout<<"*";
}
fout<<'\n';
}

int valid(int k){
int i,imax=0;
for(i=1;i<k;i++)
    if(imax<x[i])
    imax=x[i];
if(x[k]<=imax+1)
    return 1;
return 0;
}

void BKT(int k){
if(k>n)
    afisare();
else
    for(int i=1;i<=k;i++){
            x[k]=i;
    if(valid(k))
        BKT(k+1);
}
}

int main()
{
    fin>>n;
    BKT(1);
    return 0;
}