Cod sursa(job #1952971)

Utilizator alexionpopescuPopescu Ion Alexandru alexionpopescu Data 4 aprilie 2017 15:31:53
Problema Diamant Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <bits/stdc++.h>
#define mod 10000
#define lim 44100
using namespace std;
ifstream fin("diamant.in");
ofstream fout("diamant.out");
int n,m,x,v[1000001],w[1000001],i,j,k;
int main(){
    fin>>n>>m>>x;
    fin.close();
    if(x>lim||x<-lim){
        fout<<0;
        return 0;
    }
    v[lim+1000]=1;
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++){
            for(k=-lim-1000;k<=lim;k++)
                w[1000+k+lim]=0;
            for(k=-lim;k<=lim;k++){
                if(v[1000+k+lim]){
                    w[1000+k+lim+i*j]+=v[1000+k+lim];
                    w[1000+k+lim-i*j]+=v[1000+k+lim];
                }
            }
            for(k=1000-(i*j);k<=(1000+2*lim+i*j);k++)
                v[k]=(v[k]+w[k])%mod;
        }
    fout<<v[1000+x+lim]%mod;
    fout.close();
    return 0;
}