Cod sursa(job #1878179)

Utilizator KronSabau Valeriu Kron Data 13 februarie 2017 22:06:43
Problema Diamant Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <iostream>
#include <fstream>
#define MOD 10000
using namespace std;
const int mij=50000,Nmax=23;
int sol[2*mij+10],aux[2*mij+10],v[Nmax*Nmax];
int m,n,val,vf;

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

int main()
{
    f >> n >> m >> val;

    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++){

            v[vf++]=j*i;
        }

    sol[mij]=1;
    int sum=0;
    if(val<-4410 || val>4410)
    {
        g << 0;
    }else{
    for(int i=0;i<vf;i++)
    {

        sum+=v[i];

        for(int j=mij-sum;j<=mij+sum;j++)
        {
            aux[j]=(sol[j-v[i]]+sol[j]+sol[j+v[i]])%MOD;
        }
        for(int j=mij-sum;j<=mij+sum;j++)
            sol[j]=aux[j];
    }
    g << sol[mij+val];
    }
    return 0;
}