Pagini recente » Cod sursa (job #1288763) | Monitorul de evaluare | Cod sursa (job #2483881) | Cod sursa (job #2479973) | Cod sursa (job #2180514)
#include <iostream>
#include <fstream>
#define mod 98999
using namespace std;
ifstream f("stirling.in");
ofstream g("stirling.out");
int s1[205][205], s2[205][205], n, k, nr, tip;
void stirling2()
{
s2[1][1]=1;
s2[2][1]=1;
s2[2][2]=1;
for (int i=3; i<=201; i++)
{
for (int j=i-1; j>1; j--)
{
s2[i][j]=(j*(s2[i-1][j]))%mod+s2[i-1][j-1];
s2[i][j]=s2[i][j]%mod;
}
s2[i][1]=1;
s2[i][i]=1;
}
}
void stirling1()
{
s1[1][1]=1;
s1[2][1]=-1;
s1[2][2]=1;
for (int i=3; i<=201; i++)
{
s1[i][i]=1;
s1[i][1]=s1[i-1][1]*(-i+1);
s1[i][1]=s1[i][1]%mod;
for (int j=i-1; j>1; j--)
{
s1[i][j]=s1[i-1][j-1]-((i-1)*s1[i-1][j])%mod;
s1[i][j]=s1[i][j]%mod;
}
}
}
int main()
{
stirling1();
stirling2();
f >> nr;
for (int i=0; i<nr; i++)
{
f >> tip >> n >> k;
if (tip==1)
g << s1[n][k] << endl;
else
g << s2[n][k] << endl;
}
return 0;
}