Cod sursa(job #1147318)

Utilizator xtreme77Patrick Sava xtreme77 Data 19 martie 2014 18:51:25
Problema Diamant Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
//#include <cstdio>
#include <fstream>
#define C  47500
#define C2 95000
#define MOD 10000
using namespace std;
short a[111111],b[111111];
void ad(short val);
int main()
{
    short n,m,v,i,j;
    //freopen("diamant.in","r",stdin);
    //freopen("diamant.out","w",stdout);
    ifstream in("diamant.in");
    ofstream out("diamant.out");
    //scanf("%hd%hd%hd",&n,&m,&v);
    in>>n>>m>>v;
    if(v>44100 || v<-44100){
        //printf("0\n");
        out<<0<<'\n';
        return 0;
    }
    a[C]=1;
    for(i=1;i<=n;++i)
        for(j=1;j<=m;++j)
            ad(i*j);
    //printf("%d\n",a[C+v]);
    out<<a[C+v]<<'\n';
    return 0;
}
void ad(short 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];
        while(a[i]>=MOD)a[i]-=MOD;
        b[i]=0;
    }
}