Cod sursa(job #1394221)

Utilizator ZenusTudor Costin Razvan Zenus Data 20 martie 2015 09:36:33
Problema Diamant Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <cstdio>

using namespace std;

#define NMAX 100007
#define NORM 50000
#define MOD 10000

int d[2][NMAX];
int line,N,M,K,i,j,k;

int main()
{
freopen("diamant.in","r",stdin);
freopen("diamant.out","w",stdout);

scanf("%d%d%d",&N,&M,&K);

d[0][NORM] = 1;

for (i=1;i<=N;++i)
for (j=1;j<=M;++j)
{
    line = 1 - line;

    d[line][NORM - i*j] += 1;
    d[line][NORM + i*j] += 1;

    for (k=-NORM;k<=NORM;++k)
    d[line][k + NORM] = ( d[1-line][k - i*j + NORM] + d[1-line][k + i*j + NORM] + d[1-line][k + NORM] ) %MOD ;
}

if (K>NORM || K<-NORM) printf("0\n");
else printf("%d\n",d[line][K+NORM]);

return 0;
}