Cod sursa(job #1212181)
| Utilizator | Data | 23 iulie 2014 23:12:07 | |
|---|---|---|---|
| Problema | 1-sir | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.65 kb |
#include <fstream>
#include <cmath>
using namespace std;
ifstream is("1-sir.in");
ofstream os("1-sir.out");
#define MOD 194767
int N, S, l;
int d[257][255*128+1];
int main()
{
is >> N >> S;
d[1][0] = 1;
for ( int i = 2; i <= N; ++i, l = 1-l )
{
for ( int j = 0; j <= N*(N-1)/2; ++j)
{
d[l][j] = d[1-l][j+(i-1)];
if ( j-i+1 < 0 )
d[l][j] += d[1-l][-1*(j-(i-1))];
else
d[l][j] += d[1-l][j-(i-1)];
if ( d[l][j] >= MOD )
d[l][j] -= MOD;
}
}
os << d[1-l][S];
is.close();
os.close();
}
