Pagini recente » Cod sursa (job #44328) | Cod sursa (job #2044127) | Cod sursa (job #203699) | Cod sursa (job #1612988) | Cod sursa (job #2670081)
#include <iostream>
#include <fstream>
using namespace std;
const int NMAX = 20;
const int GMAX = 44100;
const int MOD = 1e4;
int v[NMAX * NMAX + 1];
int dp[2][GMAX + 1];
int modul( int x ) {
if ( x < 0 )
x = -x;
return x;
}
int main() {
int sum = 0;
for (int i = 1; i <= 20; i++)
for (int j = 1; j <= 20; j++)
sum += i * j;
cout << sum << endl;
ifstream fin( "diamant.in" );
ofstream fout( "diamant.out" );
int n, m, x, i, j, s = 0, k = 0;
fin >> n >> m >> x;
for ( i = 1; i <= n; i ++ ) {
for ( j = 1; j <= m; j ++ ) {
s += i * j;
v[++k] = i * j;
}
}
if ( x < 0 )
x = -x;
if ( s < x ) {
fout << 0;
return 0;
}
dp[1][v[1]] = 1;
dp[1][0] = 1;
for ( i = 2; i <= k; i ++ ) {
for ( j = 0; j <= GMAX; j ++ ) {
dp[i % 2][j] = dp[1 - i % 2][j] + dp[1 - i % 2][modul(j - v[i])];
if (j + v[i] <= GMAX)
dp[i % 2][j] += dp[1 - i % 2][j + v[i]];
dp[i % 2][j] %= MOD;
///cout << i << ' ' << j << ' ' << dp[i % 2][j] << endl;
}
}
i --;
fout << dp[i % 2][x];
return 0;
}