Cod sursa(job #1890710)

Utilizator SenibelanMales Sebastian Senibelan Data 23 februarie 2017 14:11:36
Problema Numerele lui Stirling Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>
#define NMAX 201
#define MOD 98999

using namespace std;

int s[NMAX][NMAX];
int S[NMAX][NMAX];

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

void Precalc(){
  s[1][1] = 1;
  S[1][1] = 1;
  for(int i = 2; i < NMAX; ++i){
    for(int j = 1; j <= i; ++j)
      s[i][j] = (s[i - 1][j - 1] - (i - 1) * s[i - 1][j]) % MOD;
  }
  for(int i = 2; i < NMAX; ++i){
    for(int j = 1; j <= i; ++j)
      S[i][j] = (S[i - 1][j - 1] + j * S[i - 1][j]) % MOD;
  }
}

void ReadAndSolveAndPrint(){
  int t, n, m, p;
  in >> t;
  for(int i = 1; i <= t; ++i){
      in >> p >> n >> m;
      if(p == 1)
        out << s[n][m]<< "\n";
      else
        out << S[n][m]<< "\n";
  }
}

int main() {
  Precalc();
  ReadAndSolveAndPrint();
  return 0;
}