Cod sursa(job #1147288)

Utilizator xtreme77Patrick Sava xtreme77 Data 19 martie 2014 18:37:50
Problema Diamant Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <cstdio>
#define C 5000
#define C2 10000
#define MOD 10000
using namespace std;
int a[11111],b[11111];
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;
    }
}