Cod sursa(job #709300)

Utilizator lily3Moldovan Liliana lily3 Data 7 martie 2012 22:32:08
Problema Diamant Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<fstream>
#define mod 10000
using namespace std;

int i,j,n,m,k,a[509010],r;
long  b[509010],nr=0;
int main()
{
	FILE *f=fopen("diamant.in","r");
	FILE *g=fopen("diamant.out","w");
	fscanf(f,"%d%d%d",&n,&m,&k);
	for(i=1;i<=n;++i)
		for(j=1;j<=m;++j)
			nr+=i*j;
		if(nr<k||k<-nr)
			fprintf(g,"0\n");
		else
		{
			nr+=k;
			b[0]=1;
			for(i=1;i<=n;++i)
				for(j=1;j<=m;++j)
				{
					for(r=nr;r>=i*j;--r)
					{
						b[r]+=b[r-(i*j)];
						b[r]%=mod;
						a[r]=b[r-(i*j)];
					}
					
					for(r=nr;r>=i*j;--r)
						b[r]+=a[r-(i*j)],b[r]%=mod;
					for(r=0;r<=nr;++r)
						a[r]=0;
				}
		}
		fprintf(g,"%ld\n",b[nr]);
		return 0;
}