Cod sursa(job #1095901)

Utilizator BlackLordFMI Alex Oprea BlackLord Data 1 februarie 2014 09:46:54
Problema Diamant Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <fstream>
#include <cstring>
#define DIM 100000
#define mod 10000
using namespace std;
ifstream f("diamant.in");
ofstream g("diamant.out");
int n, m, x, i, j, k, a[DIM], b[DIM], maxim;

int abs(int x){
    if(x<0)
        x=-x;
    return x;
}

int main(){
    f>>n>>m>>x;
    x=abs(x);
    maxim=( n*(n+1)*m*(m+1) )>>2;
    if(x>maxim)
    {
        g<<"0\n";
        return 0;
    }
    a[0]=1;
    for(i=1; i<=n; i++)
        for(j=1; j<=m; j++)
        {
            for(k=0; k<=maxim; k++)
                b[k]=(a[ abs(k-i*j) ]+a[k]+a[k+i*j])%mod;
            memcpy(a, b, sizeof(b));
        }
    g<<a[x]%mod<<"\n";
    return 0;
}