Pagini recente » Cod sursa (job #2077292) | Cod sursa (job #2125355) | Cod sursa (job #454161) | Cod sursa (job #2472117) | Cod sursa (job #2940048)
#include <bits/stdc++.h>
#define pb push_back
#define pii pair<int, int>
using ll = long long;
using namespace std;
const int NMAX = 256;
const int SMAX = NMAX * (NMAX - 1) / 2;
const int MOD = 194767;
/*******************************/
// INPUT / OUTPUT
ifstream f("1-sir.in");
ofstream g("1-sir.out");
/*******************************/
/// GLOBAL DECLARATIONS
int N, S;
int ans;
int aux[2][2 * SMAX +1], *nr[2];
/*******************************/
/// FUNCTIONS
void ReadInput();
void Solution();
void Output();
/*******************************/
///-------------------------------------
inline void ReadInput()
{
f >> N >> S;
}
///-------------------------------------
inline void Solution()
{
if (S > N * (N - 1) / 2 || S < -N * (N - 1) / 2)
{
return;
}
nr[0] = aux[0] + SMAX;
nr[1] = aux[1] + SMAX;
nr[1][0] = 1;
for (int i = 2; i <= N; i++)
{
///actualizez cu obiecte de greutati i si -i
int i_c = i % 2;
int i_a = 1 - i_c;
memset(aux[i_c], 0, sizeof(aux[i_c]));
///obiectul i
for (int j = S - (i - 1); j >= -S; j--)
{
nr[i_c][j + (i - 1)] = nr[i_a][j];
}
///obiectul -i
for (int j = -S + (i - 1); j <= S; j++)
{
nr[i_c][j - (i - 1)] += nr[i_a][j];
nr[i_c][j - (i - 1)] %= MOD;
}
/*
for (int j = -S; j <= S; j++)
{
out << nr[i_c][j] << " ";
}
out << "\n";
*/
}
ans = nr[N % 2][S];
}
///-------------------------------------
inline void Output()
{
g << ans;
}
///-------------------------------------
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
ReadInput();
Solution();
Output();
return 0;
}