Cod sursa(job #1652397)

Utilizator thewildnathNathan Wildenberg thewildnath Data 14 martie 2016 22:19:10
Problema Numerele lui Stirling Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <cstdio>

const int NMAX = 200;
const int MOD = 98999;

int s[1 + NMAX][1 + NMAX];
int S[1 + NMAX][1 + NMAX];

int main() {
  freopen("stirling.in", "r", stdin);
  freopen("stirling.out", "w", stdout);

  int t, speta, n, m;

  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;

  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] + j * S[i - 1][j]) % MOD;

  scanf("%d", &t);
  while (t--) {
    scanf("%d%d%d", &speta, &n, &m);
    if (speta == 1)
      printf("%d\n", s[n][m]);
    else // speta == 2
      printf("%d\n", S[n][m]);
  }

  return 0;
}