Cod sursa(job #2093926)

Utilizator oldatlantianSerban Cercelescu oldatlantian Data 24 decembrie 2017 17:09:02
Problema 1-sir Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <fstream>
#include <cmath>
using namespace std;

#ifndef HOME
ifstream fi("1-sir.in");
ofstream fo("1-sir.out");
#else
ifstream fi("sir.in");
ofstream fo("sir.out");
#endif

const int N = 256 * 256, MOD = 194767;

int dp[2][N];

int n, s;

int main() {
	fi >> n >> s;

	s = abs(s);
	if (n * (n + 1) < s || (n * (n - 1) / 2) % 2 != s % 2) {
		fo << "0\n";
		return 0; }

	dp[1][0] = 1;
	for (int i = 2; i <= n; ++i) {
		swap(dp[0], dp[1]); 
		for (int j = 0; j <= i * (i - 1) / 2; ++j)
			dp[1][j] = (dp[0][abs(i + j - 1)] + dp[0][abs(i - j - 1)]) % MOD; }

	fo << dp[1][s] << endl;

	return 0; }