Cod sursa(job #2685068)

Utilizator Simon2712Simon Slanina Simon2712 Data 15 decembrie 2020 21:10:54
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 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;
}