Cod sursa(job #2163187)

Utilizator vlad_schillerSchiller Vlad Radu vlad_schiller Data 12 martie 2018 17:03:43
Problema Numerele lui Stirling Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include <bits/stdc++.h>
#define mod 98999
using namespace std;
ifstream f("stirling.in");
ofstream g("stirling.out");
long long int s[202][202],S[202][202],t,x,n,m;

void smic()
{
    s[1][1]=1;
    int p=1;
    for(int i=2;i<=200;i++)
    {
        p=p*(-1)*(i-1);
        s[i][1]=p;
        s[i][i]=1;
        for(int j=2;j<i;j++)
            s[i][j]=(s[i-1][j-1]%mod-((i-1)*s[i-1][j])%mod)%mod;
    }
}

void smare()
{
    S[1][1]=1;
    for(int i=2;i<=200;i++)
    {
        S[i][1]=1;
        S[i][i]=1;
        for(int j=2;j<i;j++)
            S[i][j]=((j*S[i-1][j])%mod+(S[i-1][j-1])%mod)%mod;
    }
}

void citire(int i)
{
    if(i==t)
        return;
    f>>x>>n>>m;
    if(x==1)
        g<<s[n][m]<<'\n';
    else
        g<<S[n][m]<<'\n';
    citire(i+1);
}

int main()
{
    smic();
    smare();
    f>>t;
    citire(0);
    return 0;
}