Cod sursa(job #2354280)

Utilizator Iorgus08Iorgus Serghei Cicala Iorgus08 Data 25 februarie 2019 09:19:47
Problema Diamant Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <bits/stdc++.h>

using namespace std;

ifstream in("diamant.in");
ofstream out("diamant.out");

const int modulo=1e4;

long long suma=0,l;
int n,m,i,j,k;
int v[44105];

int main ()
{
    in>>n>>m>>l;
    if (l<0)
        l*=-1;
    v[0]=1 ;
    for(i=1; i<=n; i++)
        for(j=1; j<=m; j++)
            suma+=i*j;
    if(suma==l)
    {
        out<<1;
        return 0;
    }
    if(l>suma)
    {
        out<<0;
        return 0;
    }
    suma-=l;
    vector <int> v(suma+3,0);
    v[0]=1;
    for(i=1; i<=n; ++i)
        for(j=1; j<=m; ++j)
            for(k=suma; k>=i*j; --k)
            {
                v[k]+=v[k-i*j];
                if(k>=2*i*j)
                    v[k]+=v[k-2*i*j];
                v[k]%=modulo;
            }
    out<<v[suma]<<'\n';
    return 0 ;
}