Cod sursa(job #2290538)

Utilizator armigheGheorghe Liviu Armand armighe Data 26 noiembrie 2018 17:27:42
Problema Diamant Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 kb
#include<fstream>
#include<algorithm>
#define MOD 10000
using namespace std;
ifstream f("diamant.in");
ofstream g("diamant.out");
int v[100002],w[100002];
const int c=50000;
int main()
{
    int n,m,x,i,j,l,minim=c-1,maxim=c+1;
    f>>n>>m>>x;
    if(x>44100||x<-44100)
        g<<0;
    else
    {
        v[c]=1;
        v[c-1]=1;
        v[c+1]=1;
        for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
        if(!(i==1&&j==1))
        {
            for(l=minim;l<=maxim;l++)
            if(v[l]!=0)
            {
                w[l+i*j]+=v[l];
                w[l-i*j]+=v[l];
                w[l]+=v[l];
                w[l+i*j]%=MOD;
                w[l-i*j]%=MOD;
                w[l]%=MOD;
            }
            minim=minim-i*j;
            maxim=maxim+i*j;
            for(l=minim;l<=maxim;l++)
            {
                v[l]=w[l];
                w[l]=0;
            }
        }
        g<<v[c+x];
    }
    return 0;
}