Cod sursa(job #1147324)

Utilizator xtreme77Patrick Sava xtreme77 Data 19 martie 2014 18:55:30
Problema Diamant Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
//#include <cstdio>
#include <fstream>
#define MOD 10000
using namespace std;
short a[90005],b[90005];
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[45000]=1;
    for(i=1;i<=n;++i)
        for(j=1;j<=m;++j)
            ad(i*j);
    //printf("%d\n",a[C+v]);
    out<<a[45000+v]<<'\n';
    return 0;
}
void ad(short val)
{
    int i;
    for(i=val;i<=90000;++i)b[i]+=a[i-val];
    for(i=0;i<=90000-val;++i)b[i]+=a[i+val];
    for(i=0;i<=90000;++i)
    {
        a[i]+=b[i];
        while(a[i]>=MOD)a[i]-=MOD;
        b[i]=0;
    }
}