Cod sursa(job #981333)

Utilizator alex_unixPetenchea Alexandru alex_unix Data 6 august 2013 18:56:18
Problema Numerele lui Stirling Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb

#include <cstdio>

const int MAX_SIZE(201);
const int MOD(98999);

int s [2] [MAX_SIZE] [MAX_SIZE];

inline void Preprocess (void)
{
	int i, j, k;
	s[0][1][1] = s[1][1][1] = 1;
	for (i = 2 ; i < MAX_SIZE ; ++i)
		for (j = 1 ; j <= i ; ++j)
			for (k = 0 ; k <= 1 ; ++k)
			{
				s[k][i][j] = s[k][i - 1][j - 1];
				if (k)
					s[k][i][j] += j * s[k][i - 1][j];
				else
					s[k][i][j] -= (i - 1) * s[k][i - 1][j];
				s[k][i][j] %= MOD;
			}
}

inline void Print (void)
{
	std::freopen("stirling.in","r",stdin);
	std::freopen("stirling.out","w",stdout);
	int t;
	std::scanf("%d",&t);
	int k, i, j;
	while (t)
	{
		std::scanf("%d %d %d",&k,&i,&j);
		std::printf("%d\n",s[k - 1][i][j]);
		--t;
	}
	std::fclose(stdin);
	std::fclose(stdout);
}

int main (void)
{
	Preprocess();
	Print();
	return 0;
}