Pagini recente » Cod sursa (job #1476924) | Cod sursa (job #359615) | Cod sursa (job #1718767) | Cod sursa (job #764462) | Cod sursa (job #2926224)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("1-sir.in");
ofstream fout("1-sir.out");
const int N = 256, S = 32640, mod = 194676;
int dp[2][S + 1];
int main(){
int n, s;
fin >> n >> s;
if(n * (n - 1) / 2 < s){
fout << 0 << '\n';
return 0;
}
int flag = 0;
dp[flag][0] = 1;
for(int i = 1; i < n; i++){
flag = 1 - flag;
for(int sum = 0; sum <= i * (i + 1) / 2; sum++)
dp[flag][sum] = (dp[1 - flag][sum + i] + dp[1 - flag][abs(sum - i)]) % mod;
}
fout << dp[flag][abs(s)] << '\n';
return 0;
}
// sirul se reduce la o forma mai simpla, astfel, la pasul i, ori adunam, ori scadem (i - 1)