Cod sursa(job #2343385)

Utilizator SqueekDanielTodasca Daniel SqueekDaniel Data 13 februarie 2019 22:36:11
Problema 1-sir Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <bits/stdc++.h>

#define MAXSUM (MAXN*(MAXN-1)/2)

#define MAXN   260
#define MOD 194767

int N, S;
int DP[2][MAXSUM];

std::ifstream In ("1-sir.in");
std::ofstream Out("1-sir.out");

void Citire() {
    In >> N >> S;
    S = abs(S);
}

void Rezolvare() {
    if (S > N*(N-1)/2) {
        Out << 0 << '\n';
        return;
    }

    int t = 0;
    DP[1][0] = 1;
    for (int i=2, j; i<=N; ++i, t = 1-t)
        for (j=0; j<=i*(i-1)/2; ++j)
            DP[t][j] = (DP[1-t][abs(j-i+1)] + DP[1-t][abs(j+i-1)]) % MOD;
    Out << DP[1-t][S] << '\n';
}

int main()
{
    Citire();
    Rezolvare();

    return 0;
}