Cod sursa(job #2336190)

Utilizator BotzkiBotzki Botzki Data 4 februarie 2019 21:17:43
Problema Numerele lui Stirling Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.01 kb
#include <fstream>

using namespace std;
ifstream fin("stirling.in");
ofstream fout("stirling.out");
const int NMAX=200;
const int MOD=98999;
//numrele stirling de speta 1
//formula de recurenta
//s(n+1, k)=s(n, k-1)-n*s(n, k);
//s(n, 0)=0, s(n, 1)=1, s(n, n)=1;
int s1[NMAX+5][NMAX+5];
//numerele Stirling de speta 2
//formula de recurenta
//S(n+1, m)=S(n, m-1)+m*S(n, m);
//S(n, 1)=1, S(n, n)=1, S(n, 0)=0
int s2[NMAX+5][NMAX+5];
int main()
{
    int n=200, i, j, x, a, b;
    //Precalculam numerele lui Stiriling de speta 1 si 2
    for(i=1;i<=n;i++)
      s1[i][1]=s2[i][1]=1;
    s1[n][n]=1;
    s2[n][n]=1;
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=n;j++)
        {
          s1[i+1][j]=(s1[i][j-1]-(i*s1[i][j]%MOD))%MOD;
          s2[i+1][j]=(s2[i][j-1]+(j*s2[i][j]%MOD))%MOD;
        }
    }
    fin>>n;
    for(i=1;i<=n;i++)
    {
        fin>>x>>a>>b;
        if(x==1)
            fout<<s1[a][b]<<"\n";
        else
            fout<<s2[a][b]<<"\n";

    }
    return 0;
}