Cod sursa(job #7334)

Utilizator goguGogu Marian gogu Data 21 ianuarie 2007 13:27:37
Problema 1-sir Scor 0
Compilator cpp Status done
Runda preONI 2007, Runda 1, Clasele 11-12 Marime 0.67 kb
#include <stdio.h>
#define MOD 194767

int n, s, a[300], sol;
int pos[512*256];

void inc(int &x, int y)
{
     x+=y;
     if (x>=MOD) x-=MOD;
}

int main()
{
    freopen("1-sir.in", "r", stdin);
    freopen("1-sir.out", "w", stdout);
    scanf("%d %d", &n, &s);
    int i,j,k;
    for (i=1; i<=n; i++) a[i]=i*(i-1)/2;
    s=2*a[n]-s;
    if (s<0 || s>2*a[n]){
       printf("%d\n", 0);
       return 0;
    }
    pos[0]=1;
    int last=0;
    for (i=0; i<n; i++){
        k=(n-i)*2;
        last+=k;
        if (last>s) last=s;
        for (i=last; i>=k; i--)
            inc(pos[i], pos[i-k]);
    }
    printf("%d\n", pos[s]);
    return 0;
}