233192026-01-19 11:59:05vargaviviSzorzatország csapata (40 pont)cpp17Wrong answer 16/4023ms936 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

int main() {
	int n; cin >> n;
    vector<int> v(n + 2), z = {0};
    for (int i = 1; i <= n; i ++) {
        cin >> v[i];
        if (v[i] == 0) z.push_back(i);
    }
    auto it = max_element(v.begin() + 1, v.end() - 1);
    ll ans = *it;
    z.push_back(n + 1);
    int ans1 = it - v.begin(), ans2 = ans1;
    for (int i = 1; i < z.size(); i ++) {
        int l = z[i - 1], r = z[i], ln = -1, rn = -1;
        ll prod = 1, prod1 = 1, prod2 = 1;
        for (int j = l + 1; j < r; j ++) {
            prod *= v[j];
            if (ln == -1) prod1 *= v[j];
            if (v[j] < 0) {
                if (ln == -1) ln = j;
                rn = j;
                prod2 = 1;
            }
            prod2 *= v[j];
        }
        if (l + 1 != r) {
            if (prod > ans) {
                ans = prod;
                ans1 = l + 1;
                ans2 = r - 1;
            }
            else {
                if (prod / prod1 > ans && ln != r - 1) {
                    ans = prod / prod1;
                    ans1 = ln + 1;
                    ans2 = r - 1;
                }
                if (prod / prod2 > ans && rn != l + 1) {
                    ans = prod / prod2;
                    ans1 = l + 1;
                    ans2 = rn - 1;
                }
            }
        }
    }
    cout << ans1 << " " << ans2;
}
SubtaskSumTestVerdictTimeMemory
base16/40
1Accepted0/01ms508 KiB
2Wrong answer0/019ms820 KiB
3Accepted1/11ms316 KiB
4Accepted1/11ms316 KiB
5Accepted1/11ms316 KiB
6Accepted1/11ms316 KiB
7Accepted1/11ms316 KiB
8Accepted2/21ms316 KiB
9Accepted2/21ms316 KiB
10Wrong answer0/323ms812 KiB
11Accepted3/320ms936 KiB
12Runtime error0/318ms800 KiB
13Accepted4/421ms824 KiB
14Runtime error0/419ms816 KiB
15Runtime error0/418ms808 KiB
16Runtime error0/521ms836 KiB
17Runtime error0/518ms820 KiB