Cod sursa(job #253314)

Utilizator 630r63Ilinca George Mihai 630r63 Data 5 februarie 2009 17:44:25
Problema Diamant Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 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;  
}