Cod sursa(job #2447947)

Utilizator bogdanvladmihaiBogdan Vlad-Mihai bogdanvladmihai Data 15 august 2019 11:00:46
Problema Numerele lui Stirling Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.97 kb
#include <bits/stdc++.h>

using namespace std;

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

int N, M, Q;

int Speta1[N_MAX][N_MAX];
int Speta2[N_MAX][N_MAX];

int main() {
    freopen("stirling.in", "r", stdin);
    freopen("stirling.out", "w", stdout);
    Speta2[1][1] = Speta1[1][1] = 1;
    for (int i = 2; i < N_MAX; ++i) {
        Speta2[i][0] = 0;
        for (int j = 1; j <= i; ++j) {
            Speta2[i][j] = (Speta2[i - 1][j - 1] + Speta2[i - 1][j] * j % MOD) % MOD;
        }
    }
    for (int i = 2; i < N_MAX; ++i) {
        Speta1[i][0] = 0;
        for (int j = 1; j <= i; ++j) {
            Speta1[i][j] = (Speta1[i - 1][j - 1] - Speta1[i - 1][j] * (i - 1) % MOD) % MOD;
        }
    }
    cin >> Q;
    while (Q--) {
        int type;
        cin >> type >> N >> M;
        if (type == 1) {
            cout << Speta1[N][M] << "\n";
        } else {
            cout << Speta2[N][M] << "\n";
        }
    }
    return 0;
}