Cod sursa(job #2242476)

Utilizator stefan_creastaStefan Creasta stefan_creasta Data 18 septembrie 2018 19:07:30
Problema Diamant Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <cstdio>
using namespace std;
const int MOD = 10000;
const int NMAX = 160000;
int sol[2][NMAX * 2];

int main() {
  int n, m, x;
  freopen("diamant.in", "r", stdin);
  freopen("diamant.out", "w", stdout);
  scanf("%d%d%d", &n, &m, &x);
  sol[0][45000]++;
  int p = 0;
  for(int i = 1; i <= n; i++) {
    for(int j = 1; j <= m; j++) {
      p = 1 - p;
      for(int ii = 0; ii <= 2 * 45000; ii++) {
        sol[p][ii] = (sol[1 - p][ii] + sol[1 - p][ii - i * j] + sol[1 - p][ii + i * j]) % MOD;
      }
    }
  }
  if(x < -45000 || 45000 < x) {
    printf("0\n");
  }
  else {
    printf("%d\n", sol[p][x + 45000]);
  }
  return 0;
}