Pagini recente » Istoria paginii utilizator/petras_roman | Istoria paginii runda/simulare-cartita-40 | Cod sursa (job #2277680) | Cod sursa (job #780469) | Cod sursa (job #1714115)
#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;
}