Cod sursa(job #2137266)

Utilizator dragomirmanuelDragomir Manuel dragomirmanuel Data 20 februarie 2018 18:13:50
Problema Diamant Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

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

const int mod = 10000;
const int clc = 44105;
int N, M, k, X;
int v[405];
int dr[clc];


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

    for(int i=1; i<=N; ++i)
        for(int j=1; j<=M; ++j)
        {
            v[++k] = i*j;
            dr[v[k]]++;
        }

    int x = N*(N+1)/2;
    int y = M*(M+1)/2;

    for(int i=1; i<=N*M; ++i)
        for(int j=x*y; j>=v[i]; --j)
        {
            if(dr[j-v[i]])
                dr[j] ++;

            if(dr[j+v[i]])
                dr[j] ++;
        }

    fout << dr[X] - 1;

    return 0;
}