Cod sursa(job #2093869)

Utilizator oldatlantianSerban Cercelescu oldatlantian Data 24 decembrie 2017 16:14:45
Problema 1-sir Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <bits/stdc++.h>
using namespace std;

ifstream fi("1-sir.in");
ofstream fo("1-sir.out");

const int N = 256 * 256, 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 = i + j, fix_v(t);
			dp[1][t]+= dp[0][i], fix_mod(dp[1][t]);
			t = i - j, fix_v(t);
			dp[1][t]+= dp[0][i], fix_mod(dp[1][t]); } }

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

	return 0; }