Cod sursa(job #1394793)

Utilizator matei_cChristescu Matei matei_c Data 20 martie 2015 18:11:08
Problema 1-sir Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<vector>
#include<queue>
#include<cstring>
#include<set>
#include<map>
#include<cmath>
#include<climits>
using namespace std ;

#define maxn 260
#define maxs 33800
#define mod 194767

int N, S ;

int sol[maxn][maxs] ;

int modul(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 = modul(S) ;

    if( N * ( N - 1 ) / 2 < S )
    {
        printf("0");
        return 0 ;
    }

    sol[1][0] = 1 ;

    for(int i = 2; i <= N; ++i)
        for(int j = 0; j <= i * ( i - 1 ) / 2; ++j)
            sol[i][j] = ( sol[i - 1][ modul( j - i + 1 ) ] + sol[i - 1][j + i - 1] ) % mod ;

    printf("%d", sol[N][S]);

	return 0 ;
}