Cod sursa(job #1875938)

Utilizator GoogalAbabei Daniel Googal Data 11 februarie 2017 19:58:09
Problema Diamant Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <bits/stdc++.h>
#define vm 50000
#define nm 21
#define MOD 1000

using namespace std;

ifstream fin("diamant.in");
ofstream fout("diamant.out");

int n,m,val,s,a[nm*nm],d[2][vm*2],nr;

int main()
{
    int i,j,k;
    fin>>n>>m>>val;
    fin.close();
    if(abs(val)>vm)
    {
        fout<<0;
        fout.close();
        return 0;
    }
    d[0][vm]=1;
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
            a[++nr]=i*j;
    for(i=1;i<=nr;i++)
    {
        s+=a[i];
        for(j=vm-s;j<=vm+s;j++)
        {
            k=(i+1)%2;
            d[i%2][j]=d[k][j]+d[k][j-a[i]]+d[k][j+a[i]];
            d[i%2][j]%=MOD;
        }
    }
    fout<<d[nr%2][val+vm];
    fout.close();
    return 0;
}