Cod sursa(job #42709)

Utilizator floringh06Florin Ghesu floringh06 Data 29 martie 2007 14:08:12
Problema Diamant Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<fstream>
#include<stdio.h>
#define cst 44100

using namespace std;

int ant[89000],crt[89000];

int main()
{
FILE *fin=fopen("diamant.in","r"),
     *fout=fopen("diamant.out","w");
     
int m,n,q,i,j,k;
fscanf(fin,"%d%d%d",&m,&n,&q);

if(q>44100 || q<-44100)
   fprintf(fout,"0\n");
else
{
ant[cst]=1;
for(i=1;i<=m;i++)
  for(j=1;j<=n;j++)
     {
     for(k=0;k<=cst*2;k++)
        {
        crt[k]=ant[k];
        if(k-i*j>=0)
           crt[k]+=ant[k-i*j];
        if(k+i*j<=2*cst)
           crt[k]+=ant[k+i*j];
        crt[k]%=10000;
        }
        
     memcpy(ant,crt,sizeof ant);
     }     
fprintf(fout,"%d\n",ant[q+cst]);
}

fclose(fin);
fclose(fout);
return 0;
}