Cod sursa(job #2727860)

Utilizator robert.barbu27robert barbu robert.barbu27 Data 22 martie 2021 16:08:49
Problema Diamant Scor 90
Compilator cpp-64 Status done
Runda oni_dinamica Marime 0.99 kb
#include <bits/stdc++.h>
#define NMAX 1000
using namespace std;
ifstream f("diamant.in");
ofstream g("diamant.out");
const int mod=10000;
int n,m,x,sum=0,dp[900005][2];
int main()
{
    f>>n>>m>>x;
    x=abs(x);
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            sum+=i*j;
        }
    }
    if(x>sum)
    {
        g<<0;
        return 0;
    }
    dp[sum][1]=1;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            for(int d=0;d<=2*sum;d++)
            {
                dp[d][0]=dp[d][1];
            }
            for(int d=0;d<=2*sum;d++)
            {
                dp[d][1]=dp[d][0];
                if(i*j+d<=2*sum)
                {
                    dp[d][1]+=dp[d+i*j][0];
                }
                if(d-i*j>=0)
                {
                    dp[d][1]+=dp[d-i*j][0];
                }
                dp[d][1]%=mod;
            }
        }
    }
    g<<dp[x+sum][1];

}