Cod sursa(job #3249131)

Utilizator Mihai_OctMihai Octavian Mihai_Oct Data 14 octombrie 2024 21:00:43
Problema Numerele lui Stirling Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.87 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("stirling.in");
ofstream fout("stirling.out");
const int mod = 98999;
const int Max = 200;
int s1[Max + 2][Max + 2], s2[Max + 2][Max + 2];
int t, op, n, m, i, j;

static inline void Calcs() {
    s1[1][1] = 1;
    for(i = 2; i <= Max; i++) {
        for(j = 1; j <= i; j++) {
            s1[i][j] = (s1[i - 1][j - 1] - (i - 1) * s1[i - 1][j]) % mod;
        }
    }
}

static inline void CalcS() {
    s2[1][1] = 1;
    for(i = 2; i <= Max; i++) {
        for(j = 1; j <= i; j++) {
            s2[i][j] = (s2[i - 1][j - 1] + j * s2[i - 1][j]) % mod;
        }
    }
}

int main() {
    Calcs();
    CalcS();
    
    fin >> t;
    while(t--) {
        fin >> op >> n >> m;
        if(op == 1) fout << s1[n][m] << "\n";
        else        fout << s2[n][m] << "\n";
    }

    return 0;
}