Cod sursa(job #2319974)

Utilizator _Victor_Victor Ciobanu _Victor_ Data 13 ianuarie 2019 23:18:27
Problema Diamant Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.55 kb
#include <bits/stdc++.h>

using namespace std;

#define MOD 10000

int DP[2][160010],mx,n,m,x,ne=1;

ifstream fin("diamant.in");
ofstream fout("diamant.out");

int main(){
	fin>>n>>m>>x;
	memset(DP,0,sizeof DP);
	DP[0][0]=DP[0][1]=mx=1;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			if(i==1 && j==1) continue;
			mx+=i*j;
			for(int k=0;k<=mx;k++){
				DP[ne%2][k]=((DP[(ne+1)%2][k+i*j]+DP[(ne+1)%2][abs(k-i*j)])%MOD+DP[(ne+1)%2][k])%MOD;	
			}
			ne++;
		}
	}
	if(x<=160000)fout<<DP[(ne+1)%2][x];
	else fout<<0;
	return 0;
}