Cod sursa(job #1142081)

Utilizator alexalghisiAlghisi Alessandro Paolo alexalghisi Data 13 martie 2014 15:06:48
Problema Diamant Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <iostream>
#include <fstream>
#include <cstdlib>

#define MAXS 44100
#define MOD 10000
using namespace std;

int dp[2][MAXS+13];

int main()
{
    int n,m,k;
    ifstream f("diamant.in");
    ofstream g("diamant.out");
    f>>n>>m>>k;

    if(k>MAXS || k<-MAXS){
        g<<0;
        return 0;
    }

    dp[0][0] = 1;
    int now = 1 , prev = 0;

    for(int i=1;i<=n;++i)
        for(int j=1;j<=n;++j){

            for(int s=0;s<MAXS;++s)
                dp[now][s]=( dp[prev][ abs(s-i*j) ] + dp[prev][s] + dp[prev][s+i*j] ) %MOD;
            prev^=1;
            now^=1;
        }

    g<<dp[prev][abs(k)];

    return 0;
}