Cod sursa(job #1163901)

Utilizator PatrikStepan Patrik Patrik Data 1 aprilie 2014 18:25:41
Problema 1-sir Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
    #include<cstdio>
    using namespace std;
    #define MOD 194767
    int N , S ,d[2][255*256/2+1] ;

    int abs(int x)
    {
        if(x < 0)return -x;
        return x;
    }

    int main()
    {
        freopen("1-sir.in" , "r" , stdin );
        freopen("1-sir.out" , "w" , stdout );
        scanf("%d%d" , &N , &S );
        S = abs(S);
        if(S > N*(N-1)/2)
        {
            printf("0\n");
            return 0;
        }
        d[1][0] = 1;
        int p = 0;
        for(int i = 2 ; i <= N ; ++i , p = 1-p)
            for(int j = 0 ; 2*j <= i*(i-1) ; ++j )
            {
                d[p][j] = d[1-p][j + i-1 ] + d[1-p][abs(j-i+1)];
                if(d[p][j] >= MOD)d[p][j] -= MOD;
            }
        printf("%d" , d[1-p][S]);
        return 0;
    }