Cod sursa(job #2716858)

Utilizator Alex_tz307Lorintz Alexandru Alex_tz307 Data 5 martie 2021 19:53:43
Problema 1-sir Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <bits/stdc++.h>
#define ABS(x) ((x) >= 0 ? (x) : -(x))

using namespace std;

ifstream fin("1-sir.in");
ofstream fout("1-sir.out");

int N, S, dp[1 << 16];
const int mod = 194767;

void add_self(int &a, int b) {
    a += b;
    if(a >= mod)
        a -= mod;
}

int main() {
	fin >> N >> S;
	const int max_sum = (N * (N - 1)) >> 1;
	if(ABS(S) > max_sum || ((max_sum - S) & 1)) {
		fout << "0\n";
		return 0;
	}
	dp[0] = 1;
	for(int last = 1; last < N; ++last)
        for(int sum = last * (last - 1) / 2; sum >= 0; --sum)
            add_self(dp[sum + last], dp[sum]);
    fout << dp[(max_sum - S) >> 1];
}