Cod sursa(job #2093876)

Utilizator oldatlantianSerban Cercelescu oldatlantian Data 24 decembrie 2017 16:21:20
Problema 1-sir Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <bits/stdc++.h>
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 * 2, MOD = 194767;

int dp[2][N];

int n, s;

void fix_v(int &x) {
	if (x >= N) x-= N;
	if (x < 0) x+= N; }

void fix_mod(int &x) {
	if (x < 0) x+= MOD;
	if (x > MOD) x-= MOD; }

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

	dp[1][0] = 1;
	for (int i = n - 1; i > 0; --i) {
		swap(dp[0], dp[1]);
		memset(dp[1], 0x00, sizeof dp[1]);
		for (int t, j = 0; j < N; ++j) {
			t = j + i, fix_v(t);
			dp[1][t]+= dp[0][j], fix_mod(dp[1][t]);
			t = j - i, fix_v(t);
			dp[1][t]+= dp[0][j], fix_mod(dp[1][t]); } }

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

	return 0; }