Cod sursa(job #1954303)

Utilizator danstefanDamian Dan Stefan danstefan Data 5 aprilie 2017 12:24:00
Problema Diamant Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <bits/stdc++.h>
#define MOD 10000
int v[200010],x[200010];
#define v (v + 100000)
#define d (d + 100000)
using namespace std;
int n,m,q,i,j,k,val;
int main()
{
    ifstream f ("diamant.in");
    ofstream g ("diamant.out");
    f>>n>>m>>q;
    v[0]=1;
    for(i=1; i<=n; ++i)
        for(j=1; j<=m; ++j)
        {
            for(k=-val; k<=val; ++k)
                if(v[k]!=0)
                {
                    x[k]+=v[k];
                    x[k-i*j]+=v[k];
                    x[k+i*j]+=v[k];
                }
            val+=i*j;
            for(k=-val; k<=val; ++k)
            {
                v[k]=x[k]%MOD;
                x[k]=0;
            }
        }
    if(q>val||q<-val)
    {
        g<<0<<'\n';
        return 0;
    }
    g<<v[q];
    return 0;
}