Cod sursa(job #1278815)

Utilizator ArchazeyBaltatu Andrei-Mircea Archazey Data 29 noiembrie 2014 14:34:59
Problema Diamant Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include<bits/stdc++.h>
using namespace std;

ifstream fin("diamant.in");
ofstream fout("diamant.out");

const int MODULO=10000;
const int NMAX=25;
const int XMAX=50000;
const int XMAXX=100000;

int n,m,x;
int dp1[XMAXX],dp2[XMAXX];

int main()
{
    int i,j,l,aux;
    fin>>n>>m>>x;
    for (i=1;i<=n;i++)
        for (j=1;j<=m;j++)
            {
                if (i==1 && j==1) {dp1[XMAX]=dp1[XMAX-1]=dp1[XMAX+1]=1;continue;}
                aux=i*j;
                for (l=aux;l<(XMAXX-aux);l++)
                    dp2[l]=(dp1[l-aux]+dp1[l]+dp1[l+aux])%MODULO;
                for (l=0;l<XMAXX;l++)
                    {
                        dp1[l]=dp2[l];
                        dp2[l]=0;
                    }
            }
    x+=XMAX;
    if (x>=0 && x<XMAXX) fout<<dp1[x]<<"\n";
    else fout<<"0\n";
    return 0;
}