Cod sursa(job #756277)

Utilizator matei_cChristescu Matei matei_c Data 9 iunie 2012 13:45:20
Problema Diamant Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<cstdio>

const int MOD = 10000 ;
const int MAX_N = 100001 ;

int n,m,valoare ;
int maxval ;
int v[MAX_N],sol[MAX_N] ;

int main()
{
	
	freopen("diamant.in","r",stdin);
	freopen("diamant.out","w",stdout);
	
	scanf("%d%d%d",&n,&m,&valoare);
	
	for(int i=1;i<=n;++i)
		for(int j=1;j<=m;++j)
			maxval += i*j ;
		
	v[maxval] = 1 ;
	for(int i=1;i<=n;++i)
	{	
		for(int j=1;j<=m;++j) 
		{
			for(int k=-maxval;k<=maxval;++k)
				sol[k+maxval] = ( v[k+maxval] + v[k+i*j+maxval] + v[k-i*j+maxval] ) % MOD ;
			for(int k=-maxval;k<=maxval;++k)
				v[k+maxval] = sol[k+maxval] ;
		}
	}	
	
	printf("%d\n",sol[valoare+maxval] );
	
	return 0 ;
	
}