Cod sursa(job #2012926)

Utilizator shantih1Alex S Hill shantih1 Data 19 august 2017 21:00:28
Problema Diamant Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream fin("diamant.in");
ofstream fout("diamant.out");

int n, m, x, i, j, k, g, a, b, c, e, f, d, h, sum, mj;
long long v[100000], V[100000];

int n1[]={-1, 0, 1}, n2[]={-2, 0, 2}, n3[]={-3, 0, 3}, n4[]={-4, 0, 4}, n6[]={-6, 0, 6}, n9[]={-9, 0, 9};

int main () {
    
    fin >> n >> m >> x;
    
    mj = 50000;
    v[mj] = V[mj] = 1;
    for (a = 1; a <= n; a++)
        for (b = 1; b <= m; b++)
        {
            d = a*b;
            
            for (i = mj-sum; i <= mj+sum; i++)
                if (v[i] != 0)
                {   V[i-d] += v[i];     V[i+d] += v[i];   }
            
            sum += d;
            
            for (i = mj-sum; i <= mj+sum; i++)
            {   v[i] = V[i];       }
        }
    
    if (x > 45000  || x < 45000)    fout << 0 << "\n";
    else fout << v[mj + x] % 10000<< "\n";
}