Cod sursa(job #2694192)

Utilizator alexradu04Radu Alexandru alexradu04 Data 8 ianuarie 2021 13:59:09
Problema Diamant Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.88 kb

#include <fstream>

using namespace std;
ifstream cin("diamant.in");
ofstream cout("diamant.out");
int vl[100001],v[100001];
#define mod 10000
int main()
{
    int n,m,x,i,j,nr=0,val,ind;
    cin>>n>>m>>x;
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
            nr+=i*j;
    vl[0]=1;
    v[0]=1;
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
        {
            val=i*j;
            for(ind=0;ind<=nr;ind++)
            {
                if(ind+val<=nr)
                    v[ind]+=vl[ind+val];
                if(ind<val)
                    v[ind]+=vl[val-ind];
                else
                    v[ind]+=vl[ind-val];
            }
            for(ind=0;ind<=nr;ind++){
                v[ind]%=mod;
                vl[ind]=v[ind];
            }
        }
    if(x>nr || -x>nr)
        cout<<0;
    else
    if(x<0)
        cout<<vl[-x];
    else
        cout<<vl[x];
    return 0;
}