Pagini recente » Cod sursa (job #2031069) | Cod sursa (job #2186512) | Cod sursa (job #424965) | Cod sursa (job #2145673) | Cod sursa (job #2415191)
#include <fstream>
#include <vector>
using namespace std;
ifstream f("diamant.in");
ofstream g("diamant.out");
int n,m,target;
int suma;
vector <int> dp[2];
const int mod = 10000;
int main(){
int i,j,p;
f >> n >> m >> target;
for(i = 1 ; i <= n ; i++)
for(j = 1 ; j <= m ; j++)
suma += i * j;
if(target > suma || target < -suma){
g << "0\n";
return 0;
}
dp[0].resize(suma * 2 + 7);
dp[1].resize(suma * 2 + 7);
dp[0][suma] = 1;
for(i = 1 ; i <= n ; i++)
for(j = 1 ; j <= m ; j++){
for(p = 0 ; p <= 2 * suma ; p++){
dp[1][p] = dp[0][p];
if(p + i * j <= 2 * suma)
dp[1][p] += dp[0][p + i * j];
if(p - i * j >= 0)
dp[1][p] += dp[0][p - i * j];
dp[1][p] %= mod;
}
dp[0].swap(dp[1]);
}
g << dp[0][suma + target];
return 0;
}