#include <vector>
using namespace std;
vector<double> permittingConstructionCosts;
static const int PERMITTING_PERIODS = 0;
static const int CONSTRUCTION_PERIODS = 11;
static const double CONSTRUCTION_COSTS = 2169506;
static const double PERMITTING_COSTS = 142085;
static const int PERMITTING_CONSTRUCTION_PERIODS = PERMITTING_PERIODS + CONSTRUCTION_PERIODS;
void calcExpenses // Calculates permitting and construction expenses
(
vector<double>& expense,
double value1,
double value2
)
{
int i;
for (i=0; i<=PERMITTING_PERIODS + 1; i++)
{
expense[i] = value1;
}
for (i=PERMITTING_PERIODS + 2; i<expense.size(); i++)
{
if (i < PERMITTING_CONSTRUCTION_PERIODS + 2)
{
expense[i] = value2;
}
}
}
int main()
{
if (PERMITTING_PERIODS != 0)
{
calcExpenses(permittingConstructionCosts, -PERMITTING_COSTS/PERMITTING_PERIODS, -CONSTRUCTION_COSTS/CONSTRUCTION_PERIODS);
}
else
{
calcExpenses(permittingConstructionCosts, 0, -CONSTRUCTION_COSTS/CONSTRUCTION_PERIODS);
}
return 0;
}
I2luY2x1ZGUgPHZlY3Rvcj4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7IAoKdmVjdG9yPGRvdWJsZT4gcGVybWl0dGluZ0NvbnN0cnVjdGlvbkNvc3RzOwpzdGF0aWMgY29uc3QgaW50IFBFUk1JVFRJTkdfUEVSSU9EUyAJCQkJPSAwOwpzdGF0aWMgY29uc3QgaW50IENPTlNUUlVDVElPTl9QRVJJT0RTCQkJCT0gMTE7CnN0YXRpYyBjb25zdCBkb3VibGUgQ09OU1RSVUNUSU9OX0NPU1RTIAkJCQkJPSAyMTY5NTA2OwpzdGF0aWMgY29uc3QgZG91YmxlIFBFUk1JVFRJTkdfQ09TVFMgCQkJCQk9IDE0MjA4NTsKc3RhdGljIGNvbnN0IGludCBQRVJNSVRUSU5HX0NPTlNUUlVDVElPTl9QRVJJT0RTID0gUEVSTUlUVElOR19QRVJJT0RTICsgQ09OU1RSVUNUSU9OX1BFUklPRFM7Cgp2b2lkIGNhbGNFeHBlbnNlcwkJLy8gQ2FsY3VsYXRlcyBwZXJtaXR0aW5nIGFuZCBjb25zdHJ1Y3Rpb24gZXhwZW5zZXMKCSAgICgKCQl2ZWN0b3I8ZG91YmxlPiYgCWV4cGVuc2UsCgkJZG91YmxlIAkJCQl2YWx1ZTEsCgkJZG91YmxlIAkJCQl2YWx1ZTIKCSAgICkKewoJaW50IGk7CgkKCWZvciAoaT0wOyBpPD1QRVJNSVRUSU5HX1BFUklPRFMgKyAxOyBpKyspCgl7CgkJZXhwZW5zZVtpXSA9IHZhbHVlMTsKCX0KCQoJZm9yIChpPVBFUk1JVFRJTkdfUEVSSU9EUyArIDI7IGk8ZXhwZW5zZS5zaXplKCk7IGkrKykKCXsKCQlpZiAoaSA8IFBFUk1JVFRJTkdfQ09OU1RSVUNUSU9OX1BFUklPRFMgKyAyKQoJCXsKCQkJZXhwZW5zZVtpXSA9IHZhbHVlMjsKCQl9Cgl9Cn0KCmludCBtYWluKCkKewkKCWlmIChQRVJNSVRUSU5HX1BFUklPRFMgIT0gMCkKCQl7CgkJCWNhbGNFeHBlbnNlcyhwZXJtaXR0aW5nQ29uc3RydWN0aW9uQ29zdHMsIAkJLVBFUk1JVFRJTkdfQ09TVFMvUEVSTUlUVElOR19QRVJJT0RTLCAJLUNPTlNUUlVDVElPTl9DT1NUUy9DT05TVFJVQ1RJT05fUEVSSU9EUyk7CgkJfQoJCWVsc2UKCQl7CgkJCWNhbGNFeHBlbnNlcyhwZXJtaXR0aW5nQ29uc3RydWN0aW9uQ29zdHMsIAkJMCwgCQkJCQktQ09OU1RSVUNUSU9OX0NPU1RTL0NPTlNUUlVDVElPTl9QRVJJT0RTKTsKCQl9CgkKCXJldHVybiAwOwp9