Cod sursa(job #1462252)

Utilizator heracleRadu Muntean heracle Data 17 iulie 2015 15:16:06
Problema Diamant Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <cstdio>
#include <cstring>

FILE* in=fopen("diamant.in","r");
FILE* out=fopen("diamant.out","w");

int n,m,k;

int bmod[160008];
int baux[160008];

int *mod,*aux;

int main()
{
	mod=bmod+80007;
	aux=baux+80007;
    fscanf(in,"%d%d%d",&n,&m,&k);

    mod[0]=1;

    if(k>=80000)
    {
		fprintf(out,"0\n");
		return 0;
    }

    for(int i=1; i<=n; i++)
    {
		for(int j=1; j<=m; j++)
		{
			memset(aux,0,sizeof aux);
			for(int f=-80000; f<80000; f++)
			{
				for(int g=-1; g<=1; g++)
				{
					if(f+i*j*g>=-80000 && f+i*j*g<80000)
					{
						aux[f+i*j*g]+=mod[f];
					}
				}
			}

			for(int f=0; f<80000; f++)
			{
				mod[f]=aux[f];
			}
		}
    }

    fprintf(out,"%d\n",mod[k]);

    return 0;
}