Cod sursa(job #1147332)

Utilizator xtreme77Patrick Sava xtreme77 Data 19 martie 2014 19:00:33
Problema Diamant Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <cstdio>
#include <cstdlib>
#define MAX 100007
#define MOD 10000
#define JUM 50000
using namespace std;

int n,m,x,sum,a[MAX],b[MAX];

int main()
{
    int n,m,i,j,x,val,k;
    freopen("diamant.in","r",stdin);
    freopen("diamant.out","w",stdout);
    scanf("%d%d%d",&n,&m,&x);
    for (i=1;i<=n;++i)
        for(j=1;j<=m;++j)
            sum+=i*j;
    a[JUM]=1;
    if (x>sum){
        printf("0\n");
        return 0;
    }
    for(i=1;i<=n;++i)
        for(j=1;j<=m;++j)
        {
            val=i*j;
            for(k=-abs(sum);k<=abs(sum);++k)
                b[JUM+k]=(a[JUM+k]+a[JUM+k-val]+a[JUM+k+val])%MOD;
            for(k=-abs(sum);k<=abs(sum);++k)
                a[JUM+k]=b[JUM+k];
        }
    printf("%d\n",a[JUM+x]);
    return 0;
}