Pagini recente » Cod sursa (job #931659) | Cod sursa (job #583415) | Cod sursa (job #1557554) | Cod sursa (job #2852165) | Cod sursa (job #3306189)
#include <bits/stdc++.h>
#define MAX 201
#define MOD 98999
using namespace std;
int s[MAX][MAX], S[MAX][MAX];
void precalc() ///precalculam s(i, j) si S(i, j) pentru fiecare i, j < MAX
{
///s(i, j)
s[0][0]=1;
for(int i=1; i<MAX; i++)
{
for(int j=1; j<=i; j++)
{
s[i][j]=(s[i-1][j-1]+(i-1)*s[i-1][j])%MOD;
}
}
///S(i, j)
S[0][0]=1;
for(int i=1; i<MAX; i++)
{
for(int j=1; j<=i; j++)
{
S[i][j]=(s[i-1][j-1]+j*S[i-1][j])%MOD;
}
}
}
int main()
{
ifstream in("stirling.in");
ofstream out("stirling.out");
precalc();
int t;
in >> t;
while(t--)
{
int x, n, m;
in >> x >> n >> m;
if(x==1) ///s(n, m) = s(n-1, m-1) + (n-1) * s(n-1, m)
{
out << s[n][m] << "\n";
}
else ///S(n, m) = S(n-1, m-1) + m * S(n-1, m)
{
out << S[n][m] << "\n";
}
}
return 0;
}