Cod sursa(job #1147290)

Utilizator xtreme77Patrick Sava xtreme77 Data 19 martie 2014 18:38:49
Problema Diamant Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <cstdio>
#define C 50000
#define C2 100000
#define MOD 10000
using namespace std;
int a[111111],b[111111];
void adauga(int val);
int main()
{
    short n,m,v,i,j;
    freopen("diamant.in","r",stdin);
    freopen("diamant.out","w",stdout);
    scanf("%hd%hd%hd",&n,&m,&v);
    if(v>44100 or v<-44100){
        printf("0\n");
        return 0;
    }
    a[C]=1;
    for(i=1;i<=n;++i)
        for(j=1;j<=m;++j)
            adauga(i*j);
    printf("%d\n",a[C+v]);
    return 0;
}
void adauga(int val)
{
    int i;
    for(i=val;i<=C2;++i)b[i]+=a[i-val];
    for(i=0;i<=C2-val;++i)b[i]+=a[i+val];
    for(i=0;i<=C2;++i)
    {
        a[i]+=b[i];
        a[i]=a[i]%MOD;
        b[i]=0;
    }
}