Pagini recente » Monitorul de evaluare | Cod sursa (job #367540) | Cod sursa (job #25683) | Cod sursa (job #658924) | Cod sursa (job #3353699)
#include <iostream>
#include <fstream>
using namespace std;
int n,m;
const int MOD=98999;
long long S[201][201],s[201][201];
ifstream f("stirling.in");
ofstream g("stirling.out");
void precalcul(int n)
{
S[0][0]=1;
for(int i=1;i<=n;i++)
for(int j=1;j<=i;j++)
{
S[i][j]=(j*S[i-1][j]+S[i-1][j-1])%MOD;
}
}
void precalcul2(int n)
{
s[0][0]=1;
for(int i=1;i<=n;i++)
for(int j=1;j<=i;j++)
{
s[i][j]=((1-i)*s[i-1][j]+s[i-1][j-1])%MOD;
}
}
/*int Stirling(int n, int k)
{
if(n==0&&n==k) return 1;
if(n==0||k==0) return 0;
return k*Stirling(n-1,k)+Stirling(n-1,k-1);
}*/
int main()
{
int T,x;
f>>T;
precalcul(200);
precalcul2(200);
while(T--)
{
f>>x>>n>>m;
if(x==2)
g<<S[n][m]<<'\n';
else
g<<s[n][m]<<'\n';
}
return 0;
}