Cod sursa(job #847711)

Utilizator MtkMarianHagrSnaf MtkMarian Data 4 ianuarie 2013 13:29:40
Problema Numerele lui Stirling Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include<cstdio>
#define MAX 201 
#define MOD 98999
int sp1[MAX][MAX],sp2[MAX][MAX],speta,teste,n,k;

void precalc_speta1(int n)
{
	sp1[1][1]=1;
	for(int i=2;i<=n;++i)
		
		for(int j=1;j<=i;++j)
		
			sp1[i][j]= (-(i-1)*sp1[i-1][j] + sp1[i-1][j-1] )%MOD;


}

void precalc_speta2(int n)
{
	sp2[1][1]=1;
	
	for(int  i=2; i<=n ; ++i )
		
		for( int j=1;j<=i;++j )
		
		sp2[i][j]= (j * sp2[i-1][j] + sp2[i-1][j-1] )%MOD;

}


int main()
{
	freopen ("stirling.in","r",stdin);
	freopen("stirling.out","w",stdout);
	
	precalc_speta1(MAX);
	precalc_speta2(MAX);
	
	scanf("%d",&teste);

	while(teste--)
	{
		scanf("%d %d %d",&speta,&n,&k);
		
		if(speta==1)
			printf("%d\n",sp1[n][k]);
		
		else 
			printf("%d\n",sp2[n][k]);
	}

	return 0;
}