Cod sursa(job #2497144)

Utilizator mihai50000Mihai-Cristian Popescu mihai50000 Data 22 noiembrie 2019 09:46:26
Problema Numerele lui Stirling Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.93 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("stirling.in");
ofstream fout("stirling.out");

#define int long long

const int mod = 98999;
const int DIM = 200;

int dp1[DIM + 7][DIM + 7];
int dp2[DIM + 7][DIM + 7];

void precompute()
{
    dp1[1][1] = 1;

    for(int i = 2; i <= DIM + 1; i++)
        for(int j = 1; j <= i; j++)
            dp1[i][j] = (dp1[i - 1][j - 1] - 1LL * ((i - 1LL) * dp1[i - 1][j]) % mod) % mod;

    dp2[1][1] = 1;

    for(int i = 2; i <= DIM + 1; i++)
        for(int j = 1; j <= i; j++)
            dp2[i][j] = (dp2[i - 1][j - 1] + (j * dp2[i - 1][j]) % mod) % mod;
}

void solve()
{
    int x, n, m;
    fin >> x >> n >> m;

    if(x == 1)
    {
        fout << dp1[n][m] << '\n';
    }
    else
    {
        fout << dp2[n][m] << '\n';
    }
}

main()
{
    precompute();

    int t;
    fin >> t;

    while(t--)
    {
        solve();
    }
}