#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin >> n;
long long a[n];
for(int i = 0; i < n; i++)
{
// Index: 0 1 2 3
// Array: 2 3 -2 4
cin >> a[i];
}
vector<long long> prefix(n, 0);
vector<long long> suffix(n, 0);
long long currentelement = 1;
long long ans = LLONG_MIN;
// Prefix: Left to Right
for(int i = 0; i < n; i++)
{
currentelement = currentelement * a[i];
prefix[i] = currentelement;
// Update maximum product
ans = max(ans, currentelement);
// If current element is 0, reset product to 1
if(currentelement == 0)
{
currentelement = 1;
}
}
currentelement = 1;
// Suffix: Right to Left
for(int i = n - 1; i >= 0; i--)
{
currentelement = currentelement * a[i];
suffix[i] = currentelement;
// Update maximum product
ans = max(ans, currentelement);
// If current element is 0, reset product to 1
if(currentelement == 0)
{
currentelement = 1;
}
}
cout << "Maximum product: " << ans << endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIAp7CiAgICBpbnQgbjsKICAgIGNpbiA+PiBuOyAKCiAgICBsb25nIGxvbmcgYVtuXTsKCiAgICBmb3IoaW50IGkgPSAwOyBpIDwgbjsgaSsrKQogICAgewogICAgICAgIC8vIEluZGV4OiAgMCAgIDEgICAyICAgMwogICAgICAgIC8vIEFycmF5OiAgMiAgIDMgIC0yICAgNAogICAgICAgIGNpbiA+PiBhW2ldOwogICAgfQoKICAgIHZlY3Rvcjxsb25nIGxvbmc+IHByZWZpeChuLCAwKTsKICAgIHZlY3Rvcjxsb25nIGxvbmc+IHN1ZmZpeChuLCAwKTsKCiAgICBsb25nIGxvbmcgY3VycmVudGVsZW1lbnQgPSAxOwogICAgbG9uZyBsb25nIGFucyA9IExMT05HX01JTjsKCiAgICAvLyBQcmVmaXg6IExlZnQgdG8gUmlnaHQKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspCiAgICB7CiAgICAgICAgY3VycmVudGVsZW1lbnQgPSBjdXJyZW50ZWxlbWVudCAqIGFbaV07CgogICAgICAgIHByZWZpeFtpXSA9IGN1cnJlbnRlbGVtZW50OwoKICAgICAgICAvLyBVcGRhdGUgbWF4aW11bSBwcm9kdWN0CiAgICAgICAgYW5zID0gbWF4KGFucywgY3VycmVudGVsZW1lbnQpOwoKICAgICAgICAvLyBJZiBjdXJyZW50IGVsZW1lbnQgaXMgMCwgcmVzZXQgcHJvZHVjdCB0byAxCiAgICAgICAgaWYoY3VycmVudGVsZW1lbnQgPT0gMCkKICAgICAgICB7CiAgICAgICAgICAgIGN1cnJlbnRlbGVtZW50ID0gMTsKICAgICAgICB9CiAgICB9CgogICAgY3VycmVudGVsZW1lbnQgPSAxOwoKICAgIC8vIFN1ZmZpeDogUmlnaHQgdG8gTGVmdAogICAgZm9yKGludCBpID0gbiAtIDE7IGkgPj0gMDsgaS0tKQogICAgewogICAgICAgIGN1cnJlbnRlbGVtZW50ID0gY3VycmVudGVsZW1lbnQgKiBhW2ldOwoKICAgICAgICBzdWZmaXhbaV0gPSBjdXJyZW50ZWxlbWVudDsKCiAgICAgICAgLy8gVXBkYXRlIG1heGltdW0gcHJvZHVjdAogICAgICAgIGFucyA9IG1heChhbnMsIGN1cnJlbnRlbGVtZW50KTsKCiAgICAgICAgLy8gSWYgY3VycmVudCBlbGVtZW50IGlzIDAsIHJlc2V0IHByb2R1Y3QgdG8gMQogICAgICAgIGlmKGN1cnJlbnRlbGVtZW50ID09IDApCiAgICAgICAgewogICAgICAgICAgICBjdXJyZW50ZWxlbWVudCA9IDE7CiAgICAgICAgfQogICAgfQoKICAgIGNvdXQgPDwgIk1heGltdW0gcHJvZHVjdDogIiA8PCBhbnMgPDwgZW5kbDsKCiAgICByZXR1cm4gMDsKfQo=