Cod sursa(job #1237342)

Utilizator Darius15Darius Pop Darius15 Data 3 octombrie 2014 21:05:08
Problema Diamant Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <fstream>
#include <cmath>
using namespace std;
ifstream f("diamant.in");
ofstream g("diamant.out");
int z,x,i1,i2,i,j,s,a[2][100000],n,m,d;
int main()
{
    f>>n>>m>>d;
    for (i=1;i<=n;i++)
         for (j=1;j<=m;j++)
         s+=i*j;
    if (d>s || -d>s) g<<0;
    else {
        i1=1,i2=0;
    for (i=1;i<=n;i++)
        for (j=1;j<=m;j++)
        {
            if (i==1 && j==1)
            {
                a[0][0]=1;
                a[0][44100-i*j]=1;
                a[0][44100+i*j]=1;
            }
           else
           {
               for (z=-s;z<=s;z++)
               {
                   a[i1][z+44100]=a[i2][z+44100];
                   if (z+i*j<=s) a[i1][z+44100]+=a[i2][z+44100+i*j];
                   if (z-i*j>=-s) a[i1][z+44100]+=a[i2][z+44100-i*j];
                   a[i1][z+44100]=a[i1][z+44100]%100000;
               }
               i1=1-i1,i2=1-i2;
           }
        }
     g<<a[i2][d+44100];
    }
    return 0;
}