Cod sursa(job #928352)

Utilizator gramatovici_paulGramatovici Paul gramatovici_paul Data 26 martie 2013 13:35:15
Problema Diamant Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <iostream>
#include <fstream>
#define C 50000
#define MOD 10000


using namespace std;

ifstream in("diamant.in");
ofstream out("diamant.out");

short a[111111],b[111111];
int C2=2*C;

void adauga(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;
    }
}

int main()
{
    int w;
    short m,n,i,j;
    in>>m>>n>>w;
    if(w>44100 || w<-44100)
    {
        out<<"0\n";
        return 0;
    }
    a[C]=1;
    for(i=1;i<=m;++i)
        for(j=1;j<=n;++j)
        {
            adauga(i*j);
        }
    out<<a[C+w]<<"\n";
    return 0;
}