Cod sursa(job #1997490)

Utilizator Andrei_CotorAndrei Cotor Andrei_Cotor Data 4 iulie 2017 14:53:01
Problema Diamant Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include<fstream>
#include<string.h>
#include<map>
#define Dec 45000
using namespace std;
ifstream fi("diamant.in");
ofstream fo("diamant.out");
int A[100009],B[100009];
int n,m,x,i,j,k,maxim;
int main()
{
    fi>>n>>m>>x;
    B[Dec]=1;
    maxim=0;
    for(i=1; i<=n; i++)
        for(j=1; j<=m; j++)
        {
            for(k=-maxim; k<=maxim; k++)
            {
                A[k+Dec]+=B[k+Dec];
                A[k+i*j+Dec]+=B[k+Dec];
                A[k-i*j+Dec]+=B[k+Dec];
                A[k+Dec]%=10000;
                A[k+i*j+Dec]%=10000;
                A[k-i*j+Dec]%=10000;
            }
            maxim=maxim+i*j;
            for(k=-maxim; k<=maxim; k++)
            {
                B[k+Dec]=A[k+Dec];
                A[k+Dec]=0;
            }
        }
    if(x<-maxim || x>maxim)
        fo<<"0\n";
    else
        fo<<B[x+Dec]<<"\n";
    fi.close();
    fo.close();
    return 0;
}