Cod sursa(job #2197244)

Utilizator calinfloreaCalin Florea calinflorea Data 21 aprilie 2018 15:11:50
Problema Numerele lui Stirling Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.96 kb
#include <bits/stdc++.h>
#define NMax 207
#define MOD 98999
using namespace std;

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

int n, dp[NMax][NMax], dp2[NMax][NMax];
inline void PrecalculareSpeta1()
{
    int i, j;

    for(i = 2; i <= NMax; i++)
        for(j = 1; j <= i; j++)
            dp[i][j] = (dp[i - 1][j - 1] - (i - 1) * dp[i - 1][j]) % MOD;
}

inline void PrecalculareSpeta2()
{
    int i, j;

    for(i = 2; i <= 201; i++)
        for(j = 1; j <= i; j++)
            dp2[i][j] = (dp2[i - 1][j - 1] + j  * dp2[i - 1][j]) % MOD;
}

inline void Citire()
{
    int i, opt, x, y;

    fin >> n;
    dp[1][1] = dp2[1][1] = 1;
    PrecalculareSpeta1();
    PrecalculareSpeta2();
    for(i = 1; i <= n; i++)
    {
        fin >> opt >> x >> y;

        if(opt == 1)
           fout << dp[x][y] << "\n";
        else
            fout << dp2[x][y] << "\n";
    }
}
int main()
{
    Citire();

    return 0;
}