Pagini recente » Cod sursa (job #2208041) | Cod sursa (job #2716051) | Cod sursa (job #2448368) | Cod sursa (job #2661230) | Cod sursa (job #2982100)
#include <bits/stdc++.h>
using namespace std;
string np = "stirling";
ifstream f(np + ".in");
ofstream g(np + ".out");
// #define f cin
// #define g cout
int s1[203][203], s2[203][203];
const int mod = 98999;
int cer1(int x, int y)
{
if (s1[x][y] == (0x3f3f3f3f))
if (!x or !y or x < y)
s1[x][y] = 0;
else if (x == 1 and y == 1)
s1[x][y] = 1;
else
s1[x][y] = (cer1(x - 1, y - 1) - (x - 1) * cer1(x - 1, y)) % mod;
return s1[x][y];
}
int cer2(int x, int y)
{
if (s2[x][y] == (0x3f3f3f3f))
if (!x or !y or x < y)
s2[x][y] = 0;
else if (x == 1 and y == 1)
s2[x][y] = 1;
else
s2[x][y] = (cer2(x - 1, y - 1) + y * cer2(x - 1, y)) % mod;
return s2[x][y];
}
int main()
{
memset(s1, 0x3f3f3f3f, sizeof s1);
memset(s2, 0x3f3f3f3f, sizeof s2);
int t;
f >> t;
for (int cer, n, m; t-- and f >> cer >> n >> m;)
if (cer == 1)
g << cer1(n, m) << '\n';
else
g << cer2(n, m) << '\n';
return 0;
}