Cod sursa(job #1236596)

Utilizator Eman98Ghinea Mihail Emanuel Eman98 Data 2 octombrie 2014 10:10:17
Problema Diamant Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<fstream>
#define M 10000
using namespace std;
ifstream cin("diamant.in");
ofstream cout("diamant.out");
int n,m,x,v[2][70000],maxv,i,j,k;
int abs(int w){
    if(w<0)
    return -w;
    return w;
}
int main(){
    cin>>m>>n>>x;
    maxv=n*(n+1)*m*(m+1)/4;
    x=abs(x);
    if(x>maxv)
    {
        cout<<"0";
        return 0;
    }
    v[0][0]=1;
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
        {
            for(k=0;k<=maxv;++k)
                    v[1][k]=v[0][k]+v[0][abs(k-i*j)]+v[0][k+i*j];
            for(k=0;k<=maxv;k++)
                {
                    v[0][k]=v[1][k];
                    v[1][k]=0;
                    v[0][k]%=M;
                }
        }
    cout<<v[0][x];
    return 0;
}