Cod sursa(job #876519)

Utilizator MagnvsDaniel Constantin Anghel Magnvs Data 11 februarie 2013 21:13:44
Problema 1-sir Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <cstdio>
 
int n,s,v[66666];
 
inline int min(int a,int b)
{
    if (a>b)
        return b;
    else
        return a;
}
 
inline int max(int a,int b)
{
    if (a>b)
        return a;
    else
        return b;
}
 
int main()
{
    int i,j,aux;
    freopen("1-sir.in","r",stdin);
    freopen("1-sir.out","w",stdout);
    scanf("%d %d",&n,&s);
    s=(n*(n-1)/2-s);
    if (s%2==1)
    {
        printf("0\n");
        return 0;
    }
    s/=2;
    if (s<0||s>=66666)
    {
        printf("0\n");
        return 0;
    }
    v[0]=1;
    aux=0;
    for (i=1;i<n;++i)
        for (j=min(aux,s-i);j>-1;--j)
            if (v[j])
            {
                aux=max(aux,j+i);
                v[j+i]+=v[j];
                if (v[j+i]>=194767)
                    v[j+i]-=194767;
            }
    printf("%d\n",v[s]);
    return 0;
}