Cod sursa(job #2924228)

Utilizator ana_valeriaAna Valeria Duguleanu ana_valeria Data 27 septembrie 2022 17:06:09
Problema Diamant Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>

using namespace std;
ifstream cin ("diamant.in");
ofstream cout ("diamant.out");
int dp[44200];
int main()
{
    int n,m,i,j,k;
    long long s,x;
    cin>>n>>m>>x;
    if (x<0)
        x=0-x;
    s=0;
    for (i=1; i<=n; i++)
        for (j=1; j<=m; j++)
            s=s+i*j;
    if (x==s)
        cout<<1;
    else
        if (x>s)
            cout<<0;
        else
        {
            dp[0]=1;
            for (i=1; i<=n; i++)
                for (j=1; j<=m; j++)
                    for (k=s-x; k>=i*j; k--)
                    {
                        dp[k]=dp[k]+dp[k-i*j];
                        if (k>=2*i*j)
                            dp[k]=dp[k]+dp[k-2*i*j];
                        dp[k]=dp[k]%10000;
                    }
            cout<<dp[s-x];
        }
    return 0;
}