Cod sursa(job #2015713)

Utilizator refugiatBoni Daniel Stefan refugiat Data 27 august 2017 09:06:44
Problema Diamant Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <iostream>
#include <fstream>
#define MOD 10000
#define MIJ 44101
using namespace std;
ifstream si("diamant.in");
ofstream so("diamant.out");
int v[2][100005];
int a[405];
int main()
{
    int n,m,k;
    si>>n>>m>>k;
    int st=0,dr=0;
    int nr=0;
    for(int i=1;i<=n;++i)
        for(int j=1;j<=m;++j)
        {
            a[++nr]=i*j;
            st-=i*j;
        }
    dr=-st;
    st+=MIJ;
    dr+=MIJ;
    //so<<st<<' '<<dr<<'\n';
    if(k+MIJ>dr||k+MIJ<st)
    {
        so<<0;
        return 0;
    }
    v[0][MIJ]=1;
    int s=0;
    for(int i=1;i<=nr;i++)
    {
        s+=a[i];
        for(int j=MIJ-s;j<=MIJ+s;j++)
        {
            int p=!(i&1);
            v[i&1][j]=(v[p][j]+v[p][j-a[i]]+v[p][j+a[i]])%MOD;
        }
    }
    so<<v[nr&1][k+MIJ];
    return 0;
}