Cod sursa(job #1153832)

Utilizator yololy97Olaru Bogdan-Ioan yololy97 Data 25 martie 2014 19:27:21
Problema Diamant Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <cstdio>
using namespace std;
int i, j, n, m, X, x, poz, dp[2][88201], p = 1, q = 0, aux;
#define max_x 44100
#define mod 10000
int main(){
	freopen("diamant.in", "r", stdin);
	freopen("diamant.out", "w", stdout);
	scanf("%d %d %d ", &n, &m, &X);
	if(X <= 44100 && X>= -44100){
		dp[0][max_x] = 1;
		for(i = 1; i <= n; ++i)
			for(j = 1; j <= m; ++j){
				for(x = -X; x <= X; ++x)
					dp[p][x + max_x] = (dp[q][x - i * j + max_x] + dp[q][x + i * j + max_x] + dp[q][x + max_x]) % mod;
				aux = p;
				p = q;
				q = aux;
			}
		printf("%d ", dp[q][X + max_x]);
	}
	else
		printf("0\n");
}