Cod sursa(job #1237848)

Utilizator tudormaximTudor Maxim tudormaxim Data 4 octombrie 2014 21:51:34
Problema Diamant Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<cstdio>
#define lim 90000
using namespace std;
short a[lim+5];
short b[lim+5];
void ADD(short val){
    for(int i=val;i<=lim;i++)
        b[i]+=a[i-val];
    for(int i=0;i<=lim-val;i++)
        b[i]+=a[i+val];
    for(int i=0;i<=lim;i++)
        a[i]=(a[i]+b[i])%10000,b[i]=0;
}
int main()
{
    freopen("diamant.in", "r", stdin);
    freopen("diamant.out", "w", stdout);
    int x;
    short m,n;
    scanf("%hd%hd%d",&m,&n,&x);
    if(x>44100 || x< -44100){
        printf("0\n");
        return 0;
    }
    a[lim/2]=1;
    for(int i=1;i<=m;++i)
        for(int j=1;j<=n;++j)
            ADD(i*j);

    printf("%hd\n",a[x+(lim/2)]);
    fclose(stdin);
    fclose(stdout);
    return 0;
}