Cod sursa(job #1148518)

Utilizator Dddarius95Darius-Florentin Neatu Dddarius95 Data 20 martie 2014 20:53:22
Problema Diamant Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
#include <vector>
#define MOD 10000
using namespace std;
ifstream f("diamant.in");
ofstream g("diamant.out");

int N,M,K,sol,a[50][50],st[0],X,S;

int Sum(int i,int j)
{
    int aux=0;
    for(int i=1;i<=N;++i)
        for(int j=1;j<=M;++j)aux+=(i*j);
    return aux;
}


void Back(int x,int y, int sum)
{
    if(x>N)
    {
        if(sum==X)
        {
            ++sol;
            if(sol>=MOD)sol-=MOD;
        }
        return;
    }
    int newx,newy;
    if(y<M)newx=x,newy=y+1;
      else newx=x+1,newy=1;
    for(int i=-1;i<=1;++i)
        Back(newx,newy,sum+i*x*y);
}
int main()
{
    f>>N>>M>>X;
    S=Sum(N,M);
    K=N*M;
    if(X>S || X<-S)
    {
        g<<0<<'\n';
        return 0;
    }
    Back(1,1,0);
    g<<sol<<'\n';
    f.close();g.close();
    return 0;
}