Cod sursa(job #466273)

Utilizator dushmiMihai-Alexandru Dusmanu dushmi Data 26 iunie 2010 12:43:48
Problema Permutari2 Scor 0
Compilator cpp Status done
Runda Stelele Informaticii 2010, gimnaziu si clasa a IX-a, Ziua 2 Marime 0.89 kb
#include<cstdio>
int rasp,REZ,n,a[301];
bool f[301],frecv[301];
bool verif(int x)
{
    for(int i=1;i<=x;i++)
        if(f[i]==false)
            return false;
    return true;
}
void back(int l)
{
    if(l==n+1)
    {
        int qq=0;
        for(int i=1;i<=n;i++)
            f[i]=false;
        for(int i=1;i<=n;i++)
        {
            f[a[i]]=true;
            if(verif(i))
                qq++;
        }
        if(qq==REZ)
            rasp++;
    }
    for(int i=1;i<=n;i++)
        if(frecv[i]==false)
        {
            frecv[i]=true;
            a[l]=i;
            back(l+1);
            frecv[i]=false;
        }
}
int main()
{
    freopen("permutari2.in","r",stdin);
    freopen("permutari2.out","w",stdout);
    scanf("%d%d",&n,&REZ);
    if(n==REZ) printf("1");
    else
    {
        back(1);
        printf("%d",rasp);
    }
    return 0;
}