Cod sursa(job #3237862)

Utilizator tsg38Tsg Tsg tsg38 Data 13 iulie 2024 19:55:40
Problema Numerele lui Stirling Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <bits/stdc++.h>

using namespace std;
using ll = long long;

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

const int DIM = 201;
const int MOD = 98999;

int S[DIM][DIM], s[DIM][DIM];

void Stirling() {
  S[0][0] = s[0][0] = 1;
  for ( int i = 1; i < DIM; ++i ) {
	for ( int j = 1; j <= i; ++j ) {
      S[i][j] = (S[i - 1][j - 1] + j * S[i - 1][j]) % MOD;	  
	  s[i][j] = (s[i - 1][j - 1] + (i - 1) * s[i - 1][j]) % MOD;
	}
  }
}

int main() {
  ios_base::sync_with_stdio(0);
  fin.tie(0);
  int t, q, n, m;

  fin >> t;
  Stirling();
  while ( t-- ) {
	fin >> q >> n >> m;
	if ( q == 1 ) {
	  fout << s[n][m] * ((n - m) & 1 ? -1 : 1) << "\n";
	} else {
	  fout << S[n][m] << "\n";
	}
  }
  fin.close();
  fout.close();
  return 0;
}