Cod sursa(job #3226542)

Utilizator CheeseEaterHackRoman Alex CheeseEaterHack Data 21 aprilie 2024 20:06:11
Problema Numerele lui Stirling Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream>

using namespace std;

ifstream cin("stirling.in");
ofstream cout("stirling.out");

//s(n, k) = s(n-1, k-1) - (n-1) * s(n-1, k)
//S(n, k) = S(n-1, k-1) + k * S(n-1, k)

#define nmax 200
#define kmax 200

int dp[nmax+1][kmax+1], dp2[nmax+1][kmax+1];
int mod=98999;

int t, q, n, m;
int main()
{
	cin>>t;
	dp[0][0]=1;
	for(int i=1; i<=200; i++)
	{
		for(int j=1; j<=i; j++)
		{
			dp[i][j]=(dp[i-1][j-1]-(i-1)*dp[i-1][j])%mod;	
		}
	}
	dp2[0][0]=1;
	for(int i=1; i<=200; i++)
	{
		for(int j=1; j<=i; j++)
		{
			dp2[i][j] = (dp2[i-1][j-1]%mod+(j*dp2[i-1][j])%mod)%mod;
		}
	}
	for(int i=1; i<=t; i++)
	{
		cin>>q>>n>>m;
		if(q==1)
			cout<<dp[n][m]<<'\n';
		else
			cout<<dp2[n][m]<<'\n';
	}
}