Cod sursa(job #956316)

Utilizator classiusCobuz Andrei classius Data 2 iunie 2013 20:43:02
Problema Diamant Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>
#include <cstdlib>

using namespace std;
ifstream f("diamante.in");
ofstream g("diamante.out");

int v[2][100002];

int main()
{
    int n,m,x;

    f>>n>>m>>x;
    int s=0;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
            s+=i*j;

    if(s<abs(x)){
        g<<0;
        return 0;
    }

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

            for(int l=0;l<=s;l++){
                v[t][l]=v[1-t][l]+v[1-t][l+a]+v[1-t][abs(l-a)];
                while(v[t][l]>10000)
                    v[t][l]-=10000;
            }

            t=1-t;
        }

    if(n*m)
        g<<v[1][abs(x)];
    else
        g<<v[0][abs(x)];



    return 0;
}