Cod sursa(job #986450)

Utilizator stefan.friptuPetru Stefan Friptu stefan.friptu Data 18 august 2013 19:55:40
Problema Diamant Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <cstdio>
#include <stdlib.h>

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