Cod sursa(job #2453735)

Utilizator mvcl3Marian Iacob mvcl3 Data 5 septembrie 2019 16:04:46
Problema 1-sir Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb

#include<fstream>
using namespace std;



void compute(int s[], int idx, int& n, int& sum, int& cnt) {
	if (idx == n + 1) {
		int totalSum = 0;
		for (int i = 1; i <= n; ++i)
			totalSum += s[i];

		if (sum == totalSum)
			cnt++;

		return;
	}

	s[idx] = s[idx - 1] - 1;
	compute(s, idx + 1, n, sum, cnt);

	s[idx] = s[idx - 1] + 1;
	compute(s, idx + 1, n, sum, cnt);
}




int main()
{
	ifstream in("1-sir.in");
	ofstream out("1-sir.out");

	int n, sum, cnt = 0, s[257];

	in >> n >> sum;
	
	if ((n * (n - 1)) / 2 - sum < 0 || ((n * (n - 1)) / 2 - sum) % 2) {
		out << 0; 
		return 0;
	}
	
	
	s[1] = 0;
	//for (int i = 1; i <= 21; ++i) {
	//	
	//	for (int j = 0; j <= (i * (i - 1)) / 2; ++j) {
	//		s[1] = cnt = 0;
	//		compute(s, 2, i, j, cnt);
	//		out << cnt << ' ';
	//	}
	//	out << '\n';
	//}
	compute(s, 2, n, sum, cnt);

	out << cnt;

	return 0;
}