Pagini recente » Profil 2taylorc783ho4 | Statistici Alexandru-Sebastian SARBU (UPT_HotCoffee_Carapencea_Sarbu_Tiselice) | Istoria paginii runda/brasov_10_jr/clasament | Diferente pentru autumn-warmup-2007/solutii/runda-3 intre reviziile 53 si 50 | Cod sursa (job #2373669)
#include <cstdio>
#define MOD 98999
using namespace std;
int n, m, t, x;
int s2[205][205];
int s1[205][205];
void speta2(int i, int j)
{
if(i == 201)
return;
if(j == i)
{
s2[i][j]=1;
speta2(i+1, 1);
return;
}
s2[i][j]=(s2[i-1][j-1]+(j*s2[i-1][j])%MOD)%MOD;
speta2(i, j+1);
}
void speta1(int i, int j)
{
if(i == 201)
return;
if(j == i)
{
s1[i][j]=1;
speta1(i+1, 1);
return;
}
s1[i][j]=(s1[i-1][j-1]-((i-1)*s1[i-1][j])%MOD)%MOD;
speta1(i, j+1);
}
int main()
{
freopen("stirling.in", "r", stdin);
freopen("stirling.out", "w", stdout);
scanf("%d", &t);
s2[1][1]=1;
s2[0][0]=1;
s1[1][1]=1;
s1[0][0]=1;
speta2(2, 1);
speta1(2, 1);
for(int i=1; i<=t; i++)
{
scanf("%d %d %d", &x ,&n, &m);
if(x == 1)
{
printf("%d\n", s1[n][m]);
}
else
{
printf("%d\n", s2[n][m]);
}
}
return 0;
}