Cod sursa(job #3195288)

Utilizator not_anduAndu Scheusan not_andu Data 20 ianuarie 2024 13:14:13
Problema Numerele lui Stirling Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#include <bits/stdc++.h>

using namespace std;

#define INFILE "stirling.in"
#define OUTFILE "stirling.out"

typedef long long ll;

const int MOD = 98999;
const int N_MAX = 205;

ll s[N_MAX][N_MAX], S[N_MAX][N_MAX];

void init(){
    s[0][0] = 1, S[0][0] = 1;
    for(int i = 1; i < N_MAX; ++i){
        for(int j = 1; j <= i; ++j){
            s[i][j] = (s[i - 1][j - 1] - (i - 1) * s[i - 1][j]) % MOD;
            S[i][j] = (S[i - 1][j - 1] + S[i - 1][j] * j) % MOD;
        }
    }
}

void solve(){
    int task, n, m; cin >> task >> n >> m;
    cout << ((task == 1) ? s[n][m] : S[n][m]) << '\n';
}

int main(){
    ios_base::sync_with_stdio(false);
    freopen(INFILE, "r", stdin);
    freopen(OUTFILE, "w", stdout);
    cin.tie(0), cout.tie(0);
    int tests; cin >> tests;
    init();
    for(int i = 0; i < tests; ++i){
        solve();
    }
    return 0;
}