Cod sursa(job #949058)

Utilizator thewildnathNathan Wildenberg thewildnath Data 12 mai 2013 13:23:41
Problema Diamant Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<stdio.h>
#include<stdlib.h>
int v[2][10002];


int main()
{
    freopen("diamant.in","r",stdin);
    freopen("diamant.out","w",stdout);
    int n,m,x,sum=0,dif=0,i,j,l,aux,lin=1;
    scanf("%d%d%d",&n,&m,&x);
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
        {
            sum+=i*j;
            dif-=i*j;
        }
    if(x>sum||x<dif)
    {
        printf("0\n");
        return 0;
    }
    ///////
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=m;j++)
        {
            aux=i*j;
            for(l=0;l<=sum;l++)
                v[lin][l]=(v[1-lin][l]+v[1-lin][l+aux]+v[1-lin][abs(l-aux)])%10000;
        }
        lin=1-lin;
    }
    aux=n*m;
    if(aux%2==1)
        printf("%d",v[1][abs(x)]);
    else
        printf("%d",v[0][abs(x)]);

}