Cod sursa(job #466300)

Utilizator GavrilaVladGavrila Vlad GavrilaVlad Data 26 iunie 2010 12:57:22
Problema Permutari2 Scor 10
Compilator cpp Status done
Runda Stelele Informaticii 2010, gimnaziu si clasa a IX-a, Ziua 2 Marime 0.75 kb
#include <stdio.h>

using namespace std;

#define maxn 310
#define mod 10007

long n, i, j, k, l, sol;
long f[maxn], st[maxn];

void back(long nr)
{
    if(nr==n)
    {
        long m=0, kk=0;
        for(long i=1; i<=n; i++)
        {
            if(st[i]>m)
                m=st[i];
            if(m==i)
                kk++;
        }
        if(kk==k)
            sol=(sol+1)%mod;
        return;
    }
    for(long y=1; y<=n; y++)
    {
        if(f[y]==0)
        {
            f[y]=1;
            st[nr+1]=y;
            back(nr+1);
            st[nr+1]=0;
            f[y]=0;
        }
    }
}

int main()
{
    freopen("permutari2.in", "r", stdin);
    freopen("permutari2.out", "w", stdout);
    scanf("%d%d", &n, &k);
    back(0);
    printf("%d\n", sol);
}