Pagini recente » Cod sursa (job #1299843) | Cod sursa (job #1806958) | Istoria paginii runda/winners7 | Rating Poenar Radu (PoenarRadu) | Cod sursa (job #2632302)
#include <bits/stdc++.h>
#define MAX 131072
#define MOD 98999
#define INF 2100000000
using namespace std;
const int NMAX = 205;
FILE *IN, *OUT;
int T;
int ans[2][NMAX][NMAX];
int poz, sign;
char f[MAX];
inline void Read(int &nr){
sign = 0;
nr = 0;
while(f[poz] < '0' || f[poz] > '9'){
if(f[poz] == '-') sign = 1;
++poz;
if(poz == MAX)
fread(f, MAX, 1, IN), poz = 0;
}
while(f[poz] >= '0' && f[poz] <= '9'){
nr = 10 * nr + f[poz++] - '0';
if(poz == MAX)
fread(f, MAX, 1, IN), poz = 0;
}
if(sign) nr =- nr;
}
void intro(){
Read(T);
ans[0][0][0] = ans[0][1][1] = 1;
ans[1][0][0] = 1;
for(int i = 1; i < NMAX; i++)
ans[1][i][1] = 1;
}
void precalc(){
for(int i = 2; i <= 200; i++)
for(int j = 1; j <= i; j++)
ans[0][i][j] = (ans[0][i - 1][j - 1] - 1LL * ans[0][i - 1][j] * (i - 1)) % MOD;
for(int i = 2; i <= 200; i++)
for(int j = 2; j <= i; j++)
ans[1][i][j] = (ans[1][i - 1][j - 1] + 1LL * ans[1][i - 1][j] * j) % MOD;
}
int main(){
IN = fopen("stirling.in", "r");
OUT = fopen("stirling.out", "w");
intro();
precalc();
int tip, a, b;
for(; T; --T){
Read(tip); Read(a); Read(b);
tip--;
fprintf(OUT, "%d\n", ans[tip][a][b]);
}
return 0;
}