Cod sursa(job #2924473)

Utilizator mitumitucristinaMitu Cristina mitumitucristina Data 3 octombrie 2022 13:29:45
Problema Diamant Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.84 kb

#include <fstream>
using namespace std;
ifstream cin("diamant.in");
ofstream cout("diamant.out");
int v[50001],dp1[100001],dp2[100001];
int main ()
{
    int nr=0,s=0,n,m,x,i,j;
    cin>>n>>m>>x;
    if (x<0)
        x=-x;
    for (i=1;i<=n;i++)
        for (j=1;j<=m;j++)
        {
            nr++;
            v[nr]=i*j;
            s+=v[nr];
        }
    if (x>s)
        cout<<0;
    else
    {
        dp1[s]=1;
        for (i=1;i<=nr;i++)
        {
            for (j=0;j<=2*s;j++)
                dp2[j]=dp1[j];
            for (j=0;j<=2*s;j++)
            {
                if (j-v[i]>=0)
                    dp1[j]+=dp2[j-v[i]];
                if (j+v[i]<=2*s)
                    dp1[j]+=dp2[j+v[i]];
                dp1[j]%=10000;

            }
        }
        cout<<dp1[x+s];
    }
    return 0;
}