Cod sursa(job #664442)

Utilizator a96tudorAvram Tudor a96tudor Data 20 ianuarie 2012 09:09:29
Problema Submultimi Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include<cstdio>
using namespace std;
int n,i,sol[20];
bool pus[20];
bool cresc(int k)
{
    bool ok;
    int i;
    ok=true;
    for (i=1;i<k;i++)
        if (sol[i]>sol[i+1]) ok=false;
    return ok;
}
void afis(int k)
{
    int i;
    for (i=1;i<=k;i++)
        printf("%d ",sol[i]);
    printf("\n");
}
void back(int k)
{
    int i;
    for (i=1;i<=n;i++)
    {
        if (!pus[i]){ sol[k]=i;
                      pus[i]=true;
                      if (cresc(k))afis(k);
                      back(k+1);
                      pus[i]=false;
                      sol[k]=0;
                     }
    }
}
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);
}