Pagini recente » Cod sursa (job #1104346) | Cod sursa (job #2695355) | Cod sursa (job #1600065) | Cod sursa (job #1282516) | Cod sursa (job #1424122)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define IN_FILE_NAME "prezenta.in"
#define OUT_FILE_NAME "prezenta.out"
#define MAGIC_MODULO 10007
int arr[130];
bool used[130];
int gK = 0;
int gSolution = 0;
void Solve(int level, int n, int k)
{
if(level == n)
{
if(k == gK)
gSolution = (gSolution+1)%MAGIC_MODULO;
return;
}
if(gK - k > n-level)
return;
int i;
for(i=0; i<n-1; i++)
{
if(used[i])
continue;
used[i] = true;
arr[level] = i;
int nextK = k;
if(arr[level-1] > arr[level])
nextK+=1;
if(nextK > gK)
continue;
Solve(level+1, n, nextK);
used[i] = false;
}
}
int main()
{
int tests = 0, t = 0;
freopen(IN_FILE_NAME, "r", stdin);
freopen(OUT_FILE_NAME, "w", stdout);
tests = 30;
for(t=0; t<tests; t++)
{
arr[0] = -1;
gSolution = 0;
gK = 60;
Solve(1, 127+1, 0);
}
return 0;
scanf("%d", &tests);
for(t=0; t<tests; t++)
{
int n, k;
scanf("%d %d", &n, &k);
arr[0] = -1;
gSolution = 0;
gK = k;
Solve(1, n+1, 0);
printf("%d\n", gSolution);
}
return 0;
}