Cod sursa(job #2579596)

Utilizator MirunaStefaniaLupascu Miruna-Stefania MirunaStefania Data 12 martie 2020 17:17:20
Problema Numerele lui Stirling Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.98 kb
#include <iostream>
#include<fstream>
#define mod 98999
#define N 205
using namespace std;
ifstream fin("stirling.in");
ofstream fout("stirling.out");


//NR LUI STIRLING DE SPETA 2
//toate modurile in care putem partitiona cele n elem
//precalculam factorialul
//preclc nr stirl

int a[N][N];//sp 1
int b[N][N];//sp 2


void precalc()
{
    int i,j;
    //sp1
    a[0][0]=1;
    for(i=1;i<=N;++i)
        a[i][0]=a[0][i]=0;
    for(i=1;i<=N;++i)
        for(j=1;j<=N;++j)
        a[i][j]=(a[i-1][j-1]-((i-1)*a[i-1][j])%mod)%mod;

    //sp2
    b[0][0]=1;
    for(i=1;i<=N;++i)
        b[i][0]=b[0][i]=0;
    for(i=1;i<=N;++i)
        for(j=1;j<=N;++j)
        b[i][j]=((b[i-1][j-1]+j*b[i-1][j])%mod)%mod;

}

int main()
{
    int t,x,y,i,n;
    precalc();
    fin>>n;
    for(i=1;i<=n;++i)
    {
        fin>>t>>x>>y;
        if(t==1)fout<<a[x][y]<<"\n";
        else fout<<b[x][y]<<"\n";
    }


    fin>>n;
    precalc();


    return 0;
}