Cod sursa(job #494644)

Utilizator RobytzzaIonescu Robert Marius Robytzza Data 22 octombrie 2010 14:10:58
Problema Numerele lui Stirling Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <stdio.h>
#define IN "stirling.in"
#define OUT "stirling.out"
#define Speta1 S1
#define Speta2 S2
#define V(a) (a==1) ? S1[n][k] : S2[n][k]

const int N = 201;
const int Mod = 98999;

int Speta1[N][N], Speta2[N][N];
int T, n, k, tip;

void Sp1()
{
//Speta 1
	S1[1][1] = 1;
	for (int i = 2 ; i<N ; ++i)
		for (int j = 1 ; j <= i ; ++j)
			S1[i][j] = (S1[i - 1][j - 1] - (i-1) * S1[i - 1][j]) % Mod;
//Speta 2
	S2[1][1] = 1;
	for (int i = 2 ; i<N ; ++i)
		for (int j = 1 ; j <= i ; ++j)
			S2[i][j] = (S2[i - 1][j - 1] + j * S2[i - 1][j]) % Mod;
}

int main ()
{
	freopen (IN, "r", stdin);
	freopen (OUT, "w", stdout);

	Sp1();

	scanf ("%d", &T);
	while (T--)
	{
		scanf ("%d %d %d",&tip,  &n, &k);
		printf("%d\n", V(tip));
	}
	return 0;
}