Cod sursa(job #657923)

Utilizator nandoLicker Nandor nando Data 7 ianuarie 2012 16:59:07
Problema 1-sir Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>
using namespace std;

const int MAXN = 257;
const int MOD = 194767;

template<typename T> T abs(T a)
{
    return a > 0 ? a : -a;
}

int n, s, smax, d[2][MAXN * MAXN >> 1];

int main()
{
    fstream fin("1-sir.in", ios::in);
    fstream fout("1-sir.out", ios::out);

    fin >> n >> s;

    s = abs(s);
    smax = (n * (n - 1)) >> 1;

    d[1][0] = 1;

    bool row = 0;
    for (int i = 2; i <= n; ++i) {
        for (int j = 0; j <= smax; ++j) {
            d[row][j] = (d[!row][abs(j - i + 1)] + d[!row][abs(j + i - 1)]) % MOD;
        }

        row = !row;
    }

    fout << (s < smax ? d[n & 1][s] : 0) << endl;


    fin.close();
    fout.close();
    return 0;
}