Cod sursa(job #1360074)

Utilizator zombacDica Razvan zombac Data 25 februarie 2015 11:25:39
Problema Diamant Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <fstream>
using namespace std;
ifstream fin ("diamant.in");
ofstream fout ("diamant.out");
const int seredinu = 45000;
int N, M, X, V[900100], A[900100];

int main()
{
    fin >> N >> M >> X;

    if (X > 44000) fout << "0\n";
    else
    {
        V[seredinu] = A[seredinu] = 1;
        for (int i = 1; i <= N; i++)
        {
            for (int j = 1; j <= M; j++)
            {
                int val = (i * j);
                for (int k = 1; k <= 90000; k++)
                {
                    if (V[k])
                    {
                        A[k + val] = (A[k + val] + V[k]) % 10000;
                        A[k - val] = (A[k - val] + V[k]) % 10000;
                    }
                }
                for (int k = 1; k <= 90000; k++) V[k] = A[k];
            }
        }

        fout << V[X + seredinu] << '\n';
    }

    fout.close();
    return 0;
}