233202026-01-19 12:09:19vargaviviSzorzatország csapata (40 pont)cpp17Hibás válasz 16/4023ms1028 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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base16/40
1Elfogadva0/01ms316 KiB
2Hibás válasz0/019ms820 KiB
3Elfogadva1/11ms508 KiB
4Elfogadva1/11ms316 KiB
5Elfogadva1/11ms316 KiB
6Elfogadva1/11ms316 KiB
7Elfogadva1/11ms316 KiB
8Elfogadva2/21ms316 KiB
9Elfogadva2/21ms316 KiB
10Hibás válasz0/323ms808 KiB
11Elfogadva3/320ms1028 KiB
12Futási hiba0/318ms824 KiB
13Elfogadva4/421ms856 KiB
14Futási hiba0/418ms820 KiB
15Futási hiba0/418ms824 KiB
16Futási hiba0/521ms816 KiB
17Futási hiba0/519ms820 KiB