Pagini recente » Cod sursa (job #301545) | Cod sursa (job #1637737) | Cod sursa (job #1646093) | Cod sursa (job #986863) | Cod sursa (job #3185175)
#include <fstream>
using namespace std;
ifstream cin ("diamant.in");
ofstream cout ("diamant.out");
int modalitati[2][88201];
const int mod = 10000;
int main ()
{
int linii , coloane , valoare;
cin >> linii >> coloane >> valoare;
if (valoare < -linii * (linii + 1) / 2 * coloane * (coloane + 1) / 2 || linii * (linii + 1) / 2 * coloane * (coloane + 1) / 2 < valoare)
{ cout << '0'; }
else
{
modalitati[0][44100] = 1;
for (int linie = 1 , limita = 0 ; linie <= linii ; linie++) {
for (int coloana = 1 ; coloana <= coloane ; coloana++)
{
const int termen = linie * coloana; limita += termen;
for (int suma = -limita ; suma <= limita ; suma++) {
modalitati[1][suma + 44100] = modalitati[0][suma + 44100];
if (-limita <= suma - termen) { (modalitati[1][suma + 44100] += modalitati[0][suma - termen + 44100]) %= mod; }
if (suma + termen <= limita) { (modalitati[1][suma + 44100] += modalitati[0][suma + termen + 44100]) %= mod; }
}
swap(modalitati[0] , modalitati[1]);
}
}
cout << modalitati[0][valoare + 44100];
}
cout.close(); cin.close();
return 0;
}