Cod sursa(job #2627849)

Utilizator ioana0211Ioana Popa ioana0211 Data 12 iunie 2020 20:06:14
Problema Numerele lui Stirling Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <fstream>

using namespace std;
ifstream fin ("stirling.in");
ofstream fout ("stirling.out");
int t;
int x, n, m;
int a[201][201], b[201][201];
const int MOD=98999;
void precalculare_stirling_1 ()
{
    a[1][1]=1;
    for(int i=1; i<=200; i++)
        for(int j=1; j<=200; j++)
    {
        if(i!=1 || j!=1)
            a[i][j]=(a[i-1][j-1]-(1LL*(i-1)*a[i-1][j])%MOD)%MOD;
    }
}
void precalculare_stirling_2()
{
    b[1][1]=1;
    for(int i=1; i<=200; i++)
        for(int j=1; j<=200; j++)
    {
        if(i!=1 || j!=1)
            b[i][j]=(b[i-1][j-1]+(1LL*j*b[i-1][j])%MOD)%MOD;
    }
}
int main()
{
    fin>>t;
    precalculare_stirling_1();
    precalculare_stirling_2();
    for(int i=1; i<=t; i++)
    {
        fin>>x>>n>>m;
        if(x==1) fout<<a[n][m]<<"\n";
        else fout<<b[n][m]<<"\n";
    }
    return 0;
}