Pagini recente » Cod sursa (job #1799021) | Cod sursa (job #789205) | Cod sursa (job #2182397) | Cod sursa (job #1779120) | Cod sursa (job #1039777)
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#define MAX_N 201
#define MOD 98999
//Stirling of the first kind
int s[MAX_N][MAX_N];
//Stirling of the second kind
int S[MAX_N][MAX_N];
void generateStirling1(){
s[1][1] = 1;
for (int n=1; n<MAX_N; n++){
for (int m=1; m<MAX_N; m++){
if ( !(n==1 && m==1)){
s[n][m] = (s[n-1][m-1] - (n-1)*s[n-1][m]) % MOD;
}
}
}
}
void generateStirling2(){
S[1][1] = 1;
for (int i=1; i<MAX_N; i++){
S[i][1] = 1;
}
for (int n=1; n<MAX_N; n++){
for (int m=2; m<MAX_N; m++){
S[n][m] = (S[n-1][m-1] + m*S[n-1][m]) % MOD;
}
}
}
using namespace std;
int main()
{
generateStirling1();
generateStirling2();
freopen("stirling.in", "r", stdin);
freopen("stirling.out", "w", stdout);
int t,n,m, option;
scanf("%d", &t);
for (int i=0; i<t; i++){
scanf("%d %d %d", &option, &n, &m);
if (option == 1){
printf("%d\n", s[n][m]);
} else {
printf("%d\n", S[n][m]);
}
}
return 0;
}