Cod sursa(job #931365)

Utilizator narcis_vsGemene Narcis - Gabriel narcis_vs Data 28 martie 2013 10:37:05
Problema Numerele lui Stirling Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.93 kb
#include <fstream>
#define In "stirling.in"
#define Out "stirling.out"
#define mod 98999
#define DIM_MAX 200
using namespace std;
long long s[DIM_MAX+1][DIM_MAX+1],S[DIM_MAX+1][DIM_MAX+1];
void Calcul_Stirling_speta1()
{
    int i,j;
    s[1][1] = 1;
    for(i=2;i<=DIM_MAX;i++)
        for(j=1;j<=DIM_MAX && j<=i;j++)
            s[i][j] = (s[i-1][j-1]-(i-1)*s[i-1][j])%mod;
}

void Calcul_Stirling_speta2()
{
    int i,j;
    S[1][1] = 1;
    for(i=2;i<=DIM_MAX;i++)
        for(j=1;j<=DIM_MAX && j<=i;j++)
            S[i][j] = (S[i-1][j-1]+j*S[i-1][j])%mod;
}

int main()
{
    int T,n,m,op;
    Calcul_Stirling_speta1();
    Calcul_Stirling_speta2();
    ifstream fin(In);
    fin>>T;
    ofstream fout(Out);
    while(T--)
    {
        fin>>op>>n>>m;
        if(op==1)
            fout<<s[n][m]<<"\n";
        else
            fout<<S[n][m]<<"\n";
    }
    fin.close();
    fout.close();
    return 0;
}