Cod sursa(job #2397684)

Utilizator mjmilan11Mujdar Milan mjmilan11 Data 4 aprilie 2019 18:03:15
Problema Diamant Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <bits/stdc++.h>

using namespace std;

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

const int DPMAX = 44105;
const int MOD = 10000;
int dp[DPMAX];

int main()
{
    int n,m,X;
    fin >> n >> m >> X;
    long long sum=0;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
            sum+=i*j;
    if(sum==X)
    {
        fout << 1;
        return 0;
    }
    if(sum<X)
    {
        fout << 0;
        return 0;
    }
    sum-=X;
    dp[0]=1;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            for(int t=sum;t>=i*j;t--)
            {
                dp[t]+=dp[t-i*j];
                if(t>=2*i*j) dp[t]+=dp[t-2*i*j];
                dp[t]%=MOD;
            }
        }
    }
    fout << dp[sum];
    return 0;
}