Cod sursa(job #1375005)

Utilizator Burbon13Burbon13 Burbon13 Data 5 martie 2015 11:42:39
Problema Diamant Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include <iostream>
#include <cstdio>
#include <algorithm>

using namespace std;

#define mx 22
#define mod 10000
#define mij  45000

int n,m,x,v[90069],inte[90069];

void solve()
{
    int sum = 0 ;
    if ( x > 44000 || x < - 44000 )
    {
        printf( "0\n" ) ;
        return ;
    }
    v[mij] = 1 ;
    inte[mij] = 1 ;
    for ( int i = 1 ; i <= n ; i ++ )
        for ( int j = 1 ; j <= m ; j ++ )
        {
            int ad = i * j ;
            for ( int k = 1 ; k <= 90000 ; k ++ )
                if ( v[k] )
                {
                    inte[k-ad] = (inte[k-ad]+v[k])%mod ;
                    inte[k+ad] = (inte[k+ad]+v[k])%mod ;
                }
            for ( int k = 1 ; k <= 90000 ; k ++ )
                v[k] = inte[k] ;
        }
    printf( "%d\n" , v[x+mij] ) ;
}

int main()
{
    freopen( "diamant.in" , "r" , stdin ) ;
    freopen( "diamant.out" , "w" , stdout ) ;
    scanf( "%d %d %d" , &n , &m , &x ) ;
    solve() ;
    return 0;
}