Cod sursa(job #228835)

Utilizator toni2007Pripoae Teodor Anton toni2007 Data 8 decembrie 2008 13:52:10
Problema 1-sir Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <cassert>
#include <set>
#include <stack>
#include <vector>
#include <deque>
#include <queue>
#include <map>
#include <bitset>
#include <algorithm>
#define oo 1<<29
#define mp make_pair
#define pb push_back
#define LL long long
#define Nmax 33100
#define MOD 194767
using namespace std;
int last[Nmax], now[Nmax];
int N,S;
int main(){
    int i,j;
    freopen("1-sir.in", "r", stdin);
    freopen("1-sir.out", "w", stdout);
    scanf("%d%d",&N,&S);
    if (abs(S) > N * (N + 1) >> 1){ printf("0\n"); return 0; }
    last[0] = 1;
    for (i = 2; i <= N; ++i) {
        memset(now, 0, sizeof(now));
        for (j = 0; j <= (i * (i + 1) >> 1) ; ++j)
            now[j] += (now[j] + last[abs(j - i + 1)] + last[j + i - 1]) % MOD;
        memcpy(last, now, sizeof(now));
    }
    printf("%d\n", now[abs(S)]);
    return 0;
}