Cod sursa(job #645088)

Utilizator a96tudorAvram Tudor a96tudor Data 8 decembrie 2011 13:55:21
Problema Submultimi Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include<cstdio>
using namespace std;
int sol[20],n,i;
bool pus[20];
bool ok(int k)
{
    int i;
    bool ok1=true;
    for (i=1;i<k-1;i++)
        if (sol[i]>sol[i+1]) ok1=false;
    return ok1;
}
void afis(int k)
{
    int i;
    for(i=1;i<k;i++)
        printf("%d ",sol[i]);
   printf("\n");
}
void back(int k)
{
    int i;
    if (k<=n) {
        if (ok(k)) afis(k);
        for (i=1;i<=n;i++)
            if (!pus[i] ) { sol[k]=i;
                            pus[i]=true;
                            back(k+1);
                            pus[i]=false;
                        }
              }
}
int main()
{
    freopen("submultimi.in","r",stdin);
    freopen("submultimi.out","w",stdout);
    scanf("%d",&n);
    for (i=1;i<=n;i++)
        pus[i]=false;
    back(1);
    for(i=1;i<=n;i++)
        printf("%d ",i);
    return 0;
}