Cod sursa(job #2227684)

Utilizator isav_costinVlad Costin Andrei isav_costin Data 1 august 2018 15:18:53
Problema Diamant Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <cstdio>

#define MOD 10000

using namespace std;

int dp[2][100005];

int main()
{
  freopen( "diamant.in", "r", stdin );
  freopen( "diamant.out", "w", stdout );

  int n, m, x, k=0, p=45000;

  scanf( "%d%d%d", &n, &m, &x );

  dp[k][p]=1;
  k=!k;

  for( int i=1;i<=n;i++ )
    for( int j=1;j<=m;j++ )
    {
      for( int l=-p;l<=p;l++ )
      {
        dp[k][l+p]=dp[!k][l+p]+dp[!k][l-i*j+p]+dp[!k][l+i*j+p];
        dp[k][l+p]=dp[k][l+p]%MOD;
      }

      k=!k;
    }

  if( !(-p<=x && x<=p) )
    printf( "0" );
  else
    printf( "%d", dp[!k][x+p] );

  return 0;
}