Cod sursa(job #193805)

Utilizator Matei14Popa-Matei Mihai Matei14 Data 7 iunie 2008 11:24:44
Problema Diamant Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include<stdio.h>
#include<string.h>
#define M(x)((x>0)?x:-x)
#define N 50005
int v1[N]={1},v2[N];
int main(){
	int n,i,j,m,p,k;
    freopen("diamant.in","r",stdin);
    freopen("diamant.out","w",stdout);
    scanf("%d%d%d",&n,&m,&p);
    if(M(p)>45000){
		printf("0\n");
		fclose(stdin);
		fclose(stdout);
		return 0;
	}
	for(i=1;i<=n;++i)
        for(j=1;j<=m;++j){
			memcpy(v2,v1,sizeof(v1));
			for(k=0;k<=45000;++k)
				v1[k]=(v2[M((k-i*j))]+v2[k]+v2[k+i*j])%10000;
		}
	printf("%d\n",v1[M(p)]);
	fclose(stdin);
	fclose(stdout);
	return 0;
}