Cod sursa(job #2019122)

Utilizator vladdy47Bucur Vlad Andrei vladdy47 Data 7 septembrie 2017 09:13:23
Problema 1-sir Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
# include <bits/stdc++.h>

using namespace std;

const int nmax = 256, M = 1e5;

int n, S, Left, Right, i, j, dp[nmax][M];

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

    scanf("%d %d\n", &n, &S);

    Left = (-1) * n * (n - 1) / 2;
    Right = n * (n - 1) / 2;

    int UP = Right + 1;

    if (S < Left || S > Right)
    {
        printf("0\n");
        return 0;
    }

    dp[0][UP] = 1;

    for (i = 1; i <= n; ++i)
        for (j = Left; j <= Right; ++j)
            dp[i][j + UP] = dp[i - 1][j - i + UP] + dp[i - 1][j + i + UP];

    printf("%d\n", dp[n - 1][S + UP]);

    return 0;
}