Cod sursa(job #1213079)

Utilizator tudi98Cozma Tudor tudi98 Data 27 iulie 2014 03:32:11
Problema 1-sir Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <cstdio>
using namespace std;

const int MOD = 194767;
int dp[2][32640];

inline int abs(int a){
    return (a>0?a:-a);
}

int main(){

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

    int n,S;
    scanf("%d %d",&n,&S);
    if(S<0) S-=S<<1;
    if(S>(n-1)*n) printf("0\n");
    else{
        int SM = (n-1)*n;
        dp[0][0] = 1;
        for(int i=2;i<=n;i++){
            for(int j=0;j<=SM;j++){
                dp[1][j] = 1LL*(dp[0][j+i-1]+dp[0][abs(j-i+1)])%MOD;
            }
            for(int j=0;j<=SM;j++){
                dp[0][j] = dp[1][j];
            }
        }
        printf("%d\n",dp[0][S]);
    }
}