Cod sursa(job #2696037)

Utilizator CleliaClelia Maria Dobrescu Clelia Data 15 ianuarie 2021 06:10:08
Problema Diamant Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <fstream>
using namespace std;
ifstream fin ("diamant.in");
ofstream fout ("diamant.out");
int v[50001],dp1[100001],dp2[100001];
int main ()
{
    int nr=0,s=0,n,m,x,i,j;
    fin>>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)
        fout<<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;

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