Cod sursa(job #2778524)

Utilizator KarinAAndrei Karina KarinA Data 1 octombrie 2021 16:48:21
Problema Diamant Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <iostream>
#include <fstream>
#define MOD 10000
using namespace std;

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

int n,m,i,j,dp[50000],l;
long long sum,s;

int main()
{
    in>>n>>m>>s;
    if(s<0)
        s=-s;
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
            sum=sum+i*j;
    if(s==sum)
    {
        out<<1;
        return 0;
    }
    if(s>sum)
    {
        out<<0;
        return 0;
    }
    s=sum-s;
    dp[0]=1;
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
            for(l=s;l>=i*j;l--)
            {
                dp[l]+=dp[l-i*j];
                if(l>=2*i*j)
                    dp[l]+=dp[l-2*i*j];
                dp[l]=dp[l]%MOD;
            }
    out<<dp[s];
}