Cod sursa(job #1549875)

Utilizator StarGold2Emanuel Nrx StarGold2 Data 12 decembrie 2015 20:43:07
Problema 1-sir Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <cstdio>

#define MOD 194767
#define DIM 37000
using namespace std;

int N, S, D[2][DIM];

int main () {

    freopen ("1-sir.in" , "r", stdin );
    freopen ("1-sir.out", "w", stdout);

    scanf ("%d %d", &N, &S);

    D[1][0] = 1;
    for (int i = 2; i <= N; i ++) {
    for (int j = 0; j <= N * (N-1) / 2; j ++) {
        D[i&1][j] = (j-i+1 >= 0) ? (D[(i-1)&1][j-i+1] + D[(i-1)&1][j+i-1]) : (D[(i-1)&1][-(j-i+1)] + D[(i-1)&1][j+i-1]);
        if (D[i&1][j] >= MOD) D[i&1][j] -= MOD;
    }}

    printf ("%d\n", (S > N * (N-1) / 2 || S < -N * (N-1) / 2) ? 0 : D[N&1][S]);

    return 0;
}