Cod sursa(job #1714115)

Utilizator laurageorgescuLaura Georgescu laurageorgescu Data 7 iunie 2016 15:00:47
Problema Numerele lui Stirling Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include<fstream>

using namespace std;

ifstream fin( "stirling.in" ); ofstream fout( "stirling.out" );

const int nmax = 200;
const int mod = 98999;
int d[ 2 ][ nmax + 1 ][ nmax + 1 ];

int main() {
    int t, s, n, m;

    d[ 1 ][ 0 ][ 0 ] = 1;
    for( int i = 1; i <= nmax; ++ i ) {
        d[ 1 ][ i ][ 0 ] = 0;
        for( int j = 1; j <= i; ++ j ) {
            d[ 1 ][ i ][ j ] = (d[ 1 ][ i - 1 ][ j - 1 ] + d[ 1 ][ i - 1 ][ j ] * j) % mod;
        }
    }

    d[ 0 ][ 0 ][ 0 ] = 1;
    for( int i = 1; i <= nmax; ++ i ) {
        for( int j = 1; j <= i; ++ j ) {
            d[ 0 ][ i ][ j ] = (d[ 0 ][ i - 1 ][ j - 1 ] - (i - 1) * d[ 0 ][ i - 1 ][ j ]) % mod;
        }
    }

    fin >> t;
    while ( t -- ) {
        fin >> s >> n >> m;
        fout << d[ s - 1 ][ n ][ m ] << "\n";
    }
    fin.close();
    fout.close();
    return 0;
}