Cod sursa(job #2917494)

Utilizator andrei_C1Andrei Chertes andrei_C1 Data 5 august 2022 13:55:33
Problema Numerele lui Stirling Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <bits/stdc++.h>

using namespace std;

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

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

int Q;
int dp[2][NMAX + 1][MMAX + 1];

int main() {
	dp[0][0][0] = 1;
	dp[1][0][1] = 1;

	for(int i = 1; i <= NMAX; i++) {
		for(int j = 1; j <= MMAX; j++) {
			dp[0][i][j] = -(long long) dp[0][i - 1][j] * (i - 1) % MOD + dp[0][i - 1][j - 1];
			dp[1][i][j] = (long long) dp[1][i - 1][j] * j % MOD + dp[1][i - 1][j - 1];

			if(dp[0][i][j] >= MOD) {
				dp[0][i][j] -= MOD;
			}

			if(dp[1][i][j] >= MOD) {
				dp[1][i][j] -= MOD;
			}
		}
	}

	fin >> Q;
	
	for(int i = 1; i <= Q; i++) {
		int x, n, m;
		fin >> x >> n >> m;

		x--;

		fout << dp[x][n][m] << '\n';
	}
	return 0;
}