Cod sursa(job #1090664)

Utilizator iordache.bogdanIordache Ioan-Bogdan iordache.bogdan Data 22 ianuarie 2014 22:06:48
Problema Diamant Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include<stdio.h>
#include<stdlib.h>
#define NMAX 200007
#define mod 10000
#define med 50000

using namespace std;

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

int modul(int x) {
    return x>0 ? x : -x;
}

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[med]=1;

    if (x>sum)
    {
        printf("0");

    }
    else {
    for(i=1;i<=n;++i)
        for(j=1;j<=m;++j)
        {
            val=i*j;
            for(k=-modul(sum);k<=modul(sum);++k)
                b[med+k]=(a[med+k]+a[med+k-val]+a[med+k+val])%mod;
            for(k=-modul(sum);k<=modul(sum);++k)
                a[med+k]=b[med+k];
        }

        printf("%d",a[med+x]);
    }
    return 0;
}