Cod sursa(job #3297462)

Utilizator MMEnisEnis Mutlu MMEnis Data 22 mai 2025 17:23:35
Problema Diamant Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>

using namespace std;

ifstream f("diamant.in");
ofstream g("diamant.out");

#define mij 44101
#define MOD 10000

short v[88203];
int st = mij, dr = mij;

void update ( int val )
{
    vector <int> lazy (88203, 0);
    int stanga = st, dreapta = dr;
    for ( int i = stanga; i <= dreapta; i ++ )
    {
        if ( v[i] == 1 )
        {
            lazy[i + val] += v[i];
            lazy[i - val] += v[i];
            st = min ( st, i - val );
            dr = max ( dr, i + val );
        }
    }
    for ( int i = st; i <= dr; i ++ )
        v[i] += lazy[i];
}

int main()
{
    int n, m, c;
    f >> n >> m >> c;
    v[mij] = 1;
    for ( int i = 1; i <= n; i ++ )
    {
        for ( int j = 1; j <= m; j ++ )
        {
            int val = i * j;
            update (val);
        }
    }
    g << v[mij + c];
    return 0;
}