Cod sursa(job #49051)

Utilizator cos_minBondane Cosmin cos_min Data 5 aprilie 2007 11:49:53
Problema Diamant Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <stdio.h>
#include <fstream>
#include <vector>
#include <map>
using namespace std;

#define in "diamant.in"
#define out "diamant.out"
#define dim 70001

int A[2][dim*2+4];
int N, M, X, Y;
 
int main()
{
    int s=0, t;
    freopen(in,"r",stdin);
    freopen(out,"w",stdout);
    
    scanf("%d%d%d", &N, &M, &X);
    
    A[0][dim] = A[1][dim] = 1;
    
    for ( int i = 1; i <= N; i++ )
        for ( int j = 1; j <= M; j++ )
        {
            t = i*j;
            s += t;
            
            for ( int k = s+dim; k >= -s+dim; k-- )
            {
                if ( k-t > 0 ) A[1][k] = ( A[1][k] + A[0][k-t]) % 10000;
                if ( k+t < 2*dim ) A[1][k] = ( A[1][k] + A[0][k+t] ) % 10000;  
            }      
            
            for ( int k = 0; k <= 2*dim; k++ )
                A[0][k] = A[1][k];
        }    
    
    printf("%d", A[1][X+dim] % 10000 );   
}