Pagini recente » Cod sursa (job #2447894) | Cod sursa (job #3209119) | Cod sursa (job #2270817) | Cod sursa (job #2506558) | Cod sursa (job #2453735)
#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;
}