Cod sursa(job #1776381)

Utilizator AndreiD31Dragan Andrei AndreiD31 Data 11 octombrie 2016 11:09:42
Problema Diamant Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>

using namespace std;
ifstream f("diamant.in");
ofstream g("diamant.out");
int n,x,poz,j,v[100001],d[2001][2001],i,m;
int main()
{
    f>>n>>m>>x;
    //delta=4410;
    if(x<-44100||x>44100)
    {
        g<<"0";
        return 0;
    }

    if(x<0)x=x*(-1);

    poz=0;
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=m;j++)
        {
            poz++;
            v[poz]=i*j;

        }
    }

   d[0][0]=1;

   for(i=1;i<=poz;i++)
   for(j=0;j<=x;j++)
   {
       if(v[i]<=j){d[i][j]=d[i-1][j]+d[i-1][j-v[i]]+d[i-1][j+v[i]];}
       else if(v[i]>j&&j+v[i]<=x)d[i][j]=d[i-1][j]+d[i-1][j+v[i]];
       else d[i][j]=d[i-1][j];
   }

    for(i=0;i<=poz;i++)
    {
        for(j=0;j<=x;j++)
            g<<d[i][j]<<" ";
        g<<'\n';
    }
   g<<d[poz][x]%10000+1;
    return 0;
}