Cod sursa(job #465289)

Utilizator wefgefAndrei Grigorean wefgef Data 23 iunie 2010 19:18:09
Problema Permutari2 Scor Ascuns
Compilator cpp Status done
Runda Marime 0.63 kb
#include <cassert>
#include <cstdio>
#include <algorithm>
using namespace std;

const int MAX_N = 302;

int n, k;
int v[MAX_N];

int main() {
    assert(freopen("permutari2.in", "r", stdin) != NULL);
    assert(freopen("permutari2.out", "w", stdout) != NULL);

    assert(scanf("%d %d", &n, &k) == 2);

    for (int i = 0; i < n; ++i)
        v[i] = i;

    int sol = 0;
    do {
        int maxVal = -1, card = 0;
        for (int i = 0; i < n; ++i) {
            maxVal = max(maxVal, v[i]);
            if (maxVal == i) ++card;
        }
        if (card == k) ++sol;
    } while (next_permutation(v, v + n));
    printf("%d\n", sol % 10007);
}