201542026-01-03 12:14:12xxxSíkság (55)cpp17Wrong answer 24/5513ms1092 KiB
#include <bits/stdc++.h>
using namespace std;


int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    int n;
    cin >> n;
    vector<int> a(n+1);
    for(int i = 1; i <= n; i++) {
        cin >> a[i];
    }

    int meres[100010] = {0};

    int kicsi, nagy;
    kicsi = nagy = a[1];
    meres[a[1]] = 1;
    int hossz = 1, hosszmax = 0, most = 1, hosszind;


    for(int i = 2; i <= n; i++) {
        if (kicsi == nagy) {
            if(a[i] + 1 == kicsi) {
                kicsi = a[i];
                hossz++;
            } else if (a[i] - 1 == kicsi) {
                nagy = a[i];
                hossz++;
            } else if (abs(a[i]-kicsi) > 1) {
                kicsi = nagy = a[i];
                if(hosszmax < hossz) {
                    hosszmax = hossz;
                    hosszind = most;
                }
                hossz = 1;
                most = i;
            }
        } else {
            if (kicsi == a[i] || nagy == a[i]) {
                hossz++;
            } else if (kicsi - 1 == a[i]) {
                if(hosszmax < hossz) {
                    hosszmax = hossz;
                    hosszind = most;
                }
                most = meres[nagy] + 1;
                hossz = i - most + 1;
                nagy = kicsi;
                kicsi = nagy - 1;
            } else if (nagy + 1 == a[i]) {
                if(hosszmax < hossz) {
                    hosszmax = hossz;
                    hosszind = most;
                }
                most = meres[kicsi] + 1;
                hossz = i - most + 1;
                kicsi = nagy;
                nagy = kicsi + 1;
            } else {
                kicsi = nagy = a[i];
                if(hosszmax < hossz) {
                    hosszmax = hossz;
                    hosszind = most;
                }
                hossz = 1;
                most = i;
            }
        }
        meres[a[i]] = i;
    }

    if(hosszmax < hossz) {
        hosszmax = hossz;
        hosszind = most;
    }

    cout << hosszmax << ' ' << hosszind << '\n';


}
SubtaskSumTestVerdictTimeMemory
base24/55
1Accepted0/01ms568 KiB
2Accepted0/02ms824 KiB
3Wrong answer0/21ms756 KiB
4Accepted2/21ms564 KiB
5Accepted2/21ms564 KiB
6Wrong answer0/21ms564 KiB
7Accepted3/31ms568 KiB
8Accepted2/21ms564 KiB
9Wrong answer0/31ms564 KiB
10Accepted3/32ms820 KiB
11Accepted3/32ms612 KiB
12Wrong answer0/32ms820 KiB
13Wrong answer0/312ms1092 KiB
14Accepted3/38ms1092 KiB
15Accepted3/310ms1088 KiB
16Wrong answer0/312ms1076 KiB
17Wrong answer0/313ms1092 KiB
18Wrong answer0/313ms1076 KiB
19Accepted3/313ms1076 KiB
20Wrong answer0/312ms1080 KiB
21Wrong answer0/37ms1004 KiB
22Wrong answer0/39ms1076 KiB