Cod sursa(job #974012)

Utilizator narcis_vsGemene Narcis - Gabriel narcis_vs Data 16 iulie 2013 11:54:35
Problema 1-sir Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>

#define In "1-sir.in"
#define Out "1-sir.out"
#define Lim 32800
#define MOD 194767
#define abs(x) (((x)>(0))?(x):(-(x)))
using namespace std;
int N, S, dp[Lim];

inline void Read()
{
    ifstream f(In);
    f>>N>>S;
    S = abs(S);
    f.close();
}

inline void Solve()
{
    S = N*(N-1)/2-S;
    if(S<0)
    {
        S = 0;
        return ;
    }
    int LastS = 0, i, j,x;
    dp[0] = 1;
    for(i = 2;i <= N; ++i)
    {
        x = 2*(N-i+1);
        for(j = LastS;j >= 0 ; --j)
            if(j+x<=S)
                dp[j+x] = (dp[j+x]+dp[j])%MOD;
        LastS += x;
    }
}

inline void Write()
{
    ofstream g(Out);
    g<<dp[S]<<"\n";
    g.close();
}

int main()
{
    Read();
    Solve();
    Write();
    return 0;
}