Cod sursa(job #987335)

Utilizator cosmyoPaunel Cosmin cosmyo Data 20 august 2013 14:37:21
Problema 1-sir Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <cmath>
using namespace std;
const int N = 252;
const int MOD = 197467;
vector<int> curr(N * N), previous(N * N);
int n, s;

int main()
{
    ifstream fin("1-sir.in");
    ofstream fout("1-sir.out");
    fin >> n >> s;
    s = abs(s);
    if(s > ((n * (n - 1))/ 2))
    {
        fout << 0 << '\n';
    }

    previous[0] = 1;
    for(int i = 2; i <= n; ++i)
    {

        for(int j = 0; j <= s; ++j)
        {
            if(j - (i - 1) >= 0)
            {
                curr[j] += previous[j - (i - 1)];
            }

            if(j + (i - 1) <= s)
            {
                curr[j] += previous[j + (i - 1)];
            }

            while(curr[j] >= MOD)
            {
                curr[j] -= MOD;
            }
         //   fout << curr[j] << ' ';
        }

        for(int j = 0; j <= s; ++j)
        {
            previous[j] = curr[j];
        }
    }

    fout << previous[s] << '\n';

    return 0;
}