Cod sursa(job #1361166)

Utilizator GinguIonutGinguIonut GinguIonut Data 25 februarie 2015 19:57:06
Problema Diamant Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("diamant.in");
ofstream fout("diamant.out");
int d[441][70000],i,h,v[441],sum,n,m,s,j,t;
int cmp(int i,int j)
{
    if(v[i]>=v[j])
        return 1;
    return 0;
}
int main()
{
fin>>n>>m>>s;
if(s<0)
    s=s*-1;
for(i=1;i<=n;i++)
    for(j=1;j<=m;j++)
    {
        v[++h]=i*j;
        sum+=v[h];
    }
sort(v+1,v+h+1,cmp);

for(t=0;t<=i*j;t++)
    d[t][0]=1;
for(i=1;i<=h;i++)
{
    for(j=sum;j>=1;j--)
    {
        d[i][j]+=d[i-1][j];
        if(j+v[i]<=sum)
            d[i][j]+=d[i-1][j+v[i]];
        if(j-v[i]>=0)
            d[i][j]+=d[i-1][j-v[i]];
        d[i][j]=d[i][j]%10000;
    }
}
d[h][s]=d[h][s]%10000;
fout<<d[h][s];
    return 0;
}