Pagini recente » Cod sursa (job #747938) | Cod sursa (job #3229963) | Cod sursa (job #2824246) | Cod sursa (job #958521) | Cod sursa (job #1159263)
#include <iostream>
#include <fstream>
#include <cmath>
#define nmax 205
#define mod 98999
using namespace std;
bool computed[3][nmax][nmax];
int t, x, a, b, Stirling[3][nmax][nmax];
int solve(int kind, int n, int m) {
if(computed[kind][n][m] || m == 0 || n==0) return Stirling[kind][n][m];
computed[kind][n][m] = true;
if(kind == 1) Stirling[kind][n][m] = solve(kind, n-1, m-1) - (n-1)*solve(kind, n-1, m);
if(kind == 2) Stirling[kind][n][m] = solve(kind, n-1, m-1) + m*solve(kind, n-1, m);
Stirling[kind][n][m] %= mod;
return Stirling[kind][n][m];
}
int main() {
ifstream f("stirling.in");
ofstream g("stirling.out");
Stirling[1][0][0] = Stirling[2][0][0] = 1;
computed[1][0][0] = computed[2][0][0] = true;
f>>t;
while(t--) {
f>>x>>a>>b;
g<<solve(x, a, b)<<"\n";
}
return 0;
}