Cod sursa(job #1163860)

Utilizator PatrikStepan Patrik Patrik Data 1 aprilie 2014 17:39:32
Problema 1-sir Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
    #include<cstdio>
    using namespace std;
    #define SMAX 32641
    #define MOD 194767
    int N , S , d[2][SMAX] ;

    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 );
        if(S < 0)S = -S;
        if(S > N*(N-1)/2)
        {
            printf("0");
            return 0;
        }
        d[1][0] = 1;
        for(int i = 2 , p = 0 ; i <= N ; ++i , p = 1-p)
            for(int j = 1 ; j <= S ;  ++j)
            {
                d[p][j] = d[1-p][abs(j-i+1)] + d[1-p][j+i-1];
                if(d[p][j] >= MOD)d[p][j] -= MOD;
            }
        printf("%d" , d[N&1][S]);
        return 0;
    }