Cod sursa(job #1900188)

Utilizator trutruvasilicaHuhurez Marius trutruvasilica Data 3 martie 2017 10:46:35
Problema Diamant Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <fstream>
#include <cstdlib>
using namespace std;
ifstream fin("diamant.in");
ofstream fout("diamant.out");
int dp[81][44105],cost[81];
int main()
{
    int n,m,x,i,j;
    fin>>n>>m>>x;
    int rez=0;
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=m;j++)
        {
            rez+=i*j;
            cost[(i-1)*n+j]=i*j;
            dp[(i-1)*n+j][i*j]=1;
        }
    }
    if(x>rez) {fout<<0;exit(0);}
    int tot=n*m;
    for(i=2;i<=tot;i++)
    {
        for(j=1;j<=rez;j++)
        {
            dp[i][j]+=dp[i-1][j];
            if(j>cost[i]) dp[i][j]+=dp[i-1][j-cost[i]];
        }
    }
    int sum=0;
    for(i=1;i<=tot;i++) sum+=dp[i][x];
    fout<<sum;
}