Pagini recente » Cod sursa (job #1492941) | Cod sursa (job #3128117) | Cod sursa (job #52952) | Cod sursa (job #2563333) | Cod sursa (job #2617532)
#include <fstream>
using namespace std;
ifstream fin("1-sir.in");
ofstream fout("1-sir.out");
int dp[2][40000];
//dp[i][j] = numarul de siruri de lungime i pe care le pot forma cu suma in modui j / 2
const int r = 194767;
inline int abs(int x)
{
if (x < 0)
return -x;
return x;
}
int main()
{
int n, i, j, smax, s;
fin >> n >> s;
if (s < 0)
s = -s;
if (s > n*(n-1)/2)
{
fout << 0;
return 0;
}
smax = n*(n-1)/2;
dp[0][0] = 1;
for (i = 1; i<n; i++)
for (j = 0; j<=smax; j++)
dp[i&1][j] = (dp[(i-1)&1][j+i] + dp[(i-1)&1][abs(j-i)])%r;
fout << dp[(n-1)&1][s];
return 0;
}