Cod sursa(job #822248)

Utilizator ahmed.abdraboahmed.abdrabo ahmed.abdrabo Data 23 noiembrie 2012 01:33:23
Problema Numerele lui Stirling Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <iostream>
#include <fstream>
using namespace std;

const int MOD = 98999;

int T, X, N, M;
int S1[201][201], S2[201][201];

int main() {
	ifstream cin("stirling.in");
	ofstream cout("stirling.out");
	S1[0][0] = 1;
	S2[0][0] = 1;
	for (int n = 1; n < 201; n++) {
		for (int k = 1; k < 201; k++) {
			S1[n][k] = ((n - 1) * S1[n - 1][k] + S1[n - 1][k - 1]) % MOD;
			S2[n][k] = (   k    * S2[n - 1][k] + S2[n - 1][k - 1]) % MOD;
		}
	}
	cin >> T;
	while (T--) {
		cin >> X >> N >> M;
		if (X == 1) {
			cout << ((N - M) % 2 == 0 ? 1 : -1) * S1[N][M] << "\n";
		}
		if (X == 2) {
			cout << S2[N][M] << "\n";
		}
	}
	return 0;
}