Cod sursa(job #1988554)

Utilizator Matei_IgnutaMatei Ignuta Matei_Ignuta Data 3 iunie 2017 13:34:16
Problema 1-sir Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <stdio.h>

using namespace std;
int n, s, d[2][67000];
int mij = 33000;
int abs(int a)
{
    if(a<0) return -a;
    return a;
}
int main()
{
    freopen("1-sir.in", "r", stdin);
    freopen("1-sir.out", "w", stdout);
    scanf("%d%d", &n, &s);
    int auxs=abs(s);
    if(auxs>32845) printf("0\n");
    else
    {
        d[1][mij]=1;
        for(int i=2; i<=n; i++) {
            for(int j=-auxs; j<=auxs; j++)
            {
                if(j-i+1 >= -auxs)
                    d[i%2][mij+j]+=d[(i-1)%2][mij+j-i+1];
                if(j+i-1 <= auxs)
                    d[i%2][mij+j]+=d[(i-1)%2][mij+j+i-1];
                if(d[i%2][mij+j]>=194767)
                    d[i%2][mij+j]-=194767;
                //printf("%d ", d[i][mij+j]);
            }
            for(int j=-auxs; j<=auxs; j++)
                d[(i-1)%2][j+mij]=0;
            //printf("\n");
        }
        printf("%d\n", d[n%2][mij+auxs]);
    }
    return 0;
}