Cod sursa(job #320601)
Utilizator | cont cu nume gresit sau fals Magnus | Data | 5 iunie 2009 10:37:26 |
---|---|---|---|
Problema | Diamant | Scor | 40 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.55 kb |
#include <stdio.h>
#include <string.h>
//using namespace std;
int An[16600];
int Bn[16600];
int i,j,n,m,k;
int main()
{
freopen ("diamant.in","r",stdin);
freopen ("diamant.out","w",stdout);
scanf ("%d%d%d",&n,&m,&k);
An[8000]=1;
if (k<8200)
for (i=1;i<=n;i++)
for (j=1;j<=m;j++){
memcpy(Bn,An,sizeof(An));
for (int t=16400;t>=0;t--)
{
An[t]=Bn[t-i*j]+Bn[t]+Bn[t+i*j];
An[t]%=2000;
}
}
else
k=1;
printf ("%d\n",An[8000+k]);
return 0;
}