Cod sursa(job #2980733)

Utilizator moldovan_robert_lolMoldovan Robert moldovan_robert_lol Data 16 februarie 2023 19:27:16
Problema Numerele lui Stirling Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#include <utility>
#include <algorithm>

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

const int MOD = 98999;
int q;
int dp[2][205][205];

void preprocess() {
	dp[0][0][0] = dp[1][0][0] = 1;
	for (int n = 1; n <= 200; n++) {
		dp[1][n][1] = dp[1][n][n] = 1;
		for (int k = 2; k <= n-1; k++) {
			dp[0][n][k] = dp[0][n-1][k-1]-1LL*(n-1)*dp[0][n-1][k]%MOD;
			dp[0][n][k] %= MOD;
			dp[1][n][k] = 1LL*k*dp[1][n-1][k]%MOD+dp[1][n-1][k-1];
			dp[1][n][k] %= MOD;
			std::cerr << dp[1][n][k] << " ";
		}
		std::cerr << "\n";
	}
}

int main() {
	preprocess();
	fin >> q;
	for (int op, n, k; q--;) {
		fin >> op >> n >> k;
		fout << dp[op-1][n][k] << "\n";
	}
}