Cod sursa(job #2162992)

Utilizator vlad_schillerSchiller Vlad Radu vlad_schiller Data 12 martie 2018 16:22:46
Problema Numerele lui Stirling Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.18 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 smicr(int i, int j,long long int prod)
{
    if(i==j&&i==200)
        return;
    if(i==j)
    {
        s[i][j]=1;
        smicr(i+1,1,prod);
    }
    if(j==1)
    {
        prod*=-(i-1);
        s[i][j]=prod;
        smicr(i,j+1,prod);
    }
    s[i][j]=s[i-1][j]-s[i-1][j-1]*(n-1);
    smicr(i,j+1,prod);
}

void smic()
{
    s[1][1]=1;
    s[2][1]=-1;
    s[2][2]=1;
    smicr(3,1);
}

void smarer(int i, int j)
{
    if(i==j&&i==200)
        return;
    if(i==j)
    {
        S[i][j]=1;
        smarer(i+1,1);
    }
    if(j==1)
    {
        S[i][j]=1;
        smarer(i,j+1);
    }
    S[i][j]=k*S[i-1][j]+S[i-1][j-1];
    smarer(i,j+1);
}

void smare()
{
    S[1][1]=1;
    S[2][1]=1;
    S[2][2]=1;
    smarer(3,1);
}

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

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