Cod sursa(job #829746)

Utilizator sleepaholicNeculaescu Theodor sleepaholic Data 5 decembrie 2012 20:01:18
Problema Numerele lui Stirling Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream>
using namespace std;

const int MOD = 98999;

int T, X, N, M;
int S1[201][201], S2[201][201];

int main() {
    ifstream cin("stirling.in");
    ofstream cout("stirling.out");
    S1[0][0] = 1;
    S2[0][0] = 1;
    for (int n = 1; n < 201; n++) {
        for (int k = 1; k < 201; k++) {
            S1[n][k] = ((n - 1) * S1[n - 1][k] + S1[n - 1][k - 1]) % MOD;
            S2[n][k] = (   k    * S2[n - 1][k] + S2[n - 1][k - 1]) % MOD;
        }
    }
    cin >> T;
    while (T--) {
        cin >> X >> N >> M;
        if (X == 1) {
            cout << ((N - M) % 2 == 0 ? 1 : -1) * S1[N][M] << "\n";
        }
        if (X == 2) {
            cout << S2[N][M] << "\n";
        }
    }
    return 0;
}