Cod sursa(job #956315)

Utilizator classiusCobuz Andrei classius Data 2 iunie 2013 20:37:25
Problema Diamant Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>
#include <vector>
#include <cmath>

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

const int mod=10000;
const int mx=50000;
int v[2][2*(mx+1)];

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][int(abs(l-a))])%mod;

            t=1-t;
        }

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



    return 0;
}