176802025-09-13 10:01:37TakacsAndrasSíkság (55)cpp17Hibás válasz 23/55300ms3052 KiB
#include <bits/stdc++.h>
using namespace std;
vector<int> st1,st2;
int n;
int qr1(int l, int r) {
    l += n;
    r += n;
    int rt = st1[l];
    while (l && r && l <= r) {
        if (l % 2 == 1) rt = min(rt,st1[l++]);
        if (r % 2 == 0) rt = min(rt,st1[r--]);
        l /= 2;
        r /= 2;
    }
    return rt;
}
int qr2(int l, int r) {
    l += n;
    r += n;
    int rt = st2[l];
    while (l && r && l <= r) {
        if (l % 2 == 1) rt = max(rt,st2[l++]);
        if (r % 2 == 0) rt = max(rt,st2[r--]);
        l /= 2;
        r /= 2;
    }
    return rt;
}
int main() {
    cin >> n;
    vector<int> a(n);
    st1.resize(2*n);
    st2.resize(2*n);
    for (int i = 0; i < n; i++) {
        cin >> a[i];
        st1[i+n] = a[i];
        st2[i+n] = a[i];
    }
    for (int i = n-1; i >= 0; i--) st1[i] = min(st1[i*2],st1[i*2+1]);
    for (int i = n-1; i >= 0; i--) st2[i] = max(st2[i*2],st2[i*2+1]);
    int l = 1, h = n+1;
    int out = 1;
    while (l+1 < h) {
        int m = (l+h)/2;
        int o = -1;
        for (int i = 0; i <= n-m; i++) {
            int q1 = qr1(i,i+m-1);
            int q2 = qr2(i,i+m-1);
            if (q2-q1 <= 1) {
                o = i;
            }
        }
        if (o == -1) h = m;
        else {
            l = m;
            out = o+1;
        }
    }
    cout << l << ' ' << out << '\n';
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base23/55
1Elfogadva0/01ms316 KiB
2Elfogadva0/023ms564 KiB
3Elfogadva2/21ms316 KiB
4Hibás válasz0/21ms316 KiB
5Elfogadva2/21ms316 KiB
6Elfogadva2/21ms512 KiB
7Hibás válasz0/31ms316 KiB
8Elfogadva2/22ms316 KiB
9Elfogadva3/32ms344 KiB
10Elfogadva3/328ms652 KiB
11Elfogadva3/314ms624 KiB
12Elfogadva3/36ms564 KiB
13Időlimit túllépés0/3216ms2888 KiB
14Időlimit túllépés0/3277ms2572 KiB
15Időlimit túllépés0/3300ms2612 KiB
16Időlimit túllépés0/3300ms2872 KiB
17Időlimit túllépés0/3284ms2876 KiB
18Időlimit túllépés0/3293ms2868 KiB
19Időlimit túllépés0/3284ms2868 KiB
20Időlimit túllépés0/3300ms3052 KiB
21Elfogadva3/3163ms1588 KiB
22Időlimit túllépés0/3232ms2368 KiB