205942026-01-07 18:40:11algoproSíkság (55)cpp17Elfogadva 55/5532ms852 KiB
// UUID: f161aee8-ce9f-4a7d-867c-c327d52c4399
#include <bits/stdc++.h>
using namespace std;

int main() {
	int n; cin >> n;
    vector<int> nums(n);
    for (int i = 0; i < n; i++) {
        cin >> nums[i];
    }

    int num1 = nums[0];
    int num2 = -1;
    int start = 0;
    int len = 1;
    int ind = 1;
    for (int i = 1; i < n; i++) {
        if (abs(nums[i] - nums[i-1]) <= 1) {
            if (!(nums[i] == nums[i-1])) {
                if (num2 == -1) {
                    num2 = nums[i];
                }
                else {
                    if (nums[i] != num1 && nums[i] != num2) {
                        int last = i-1;
                        while (nums[last] == nums[i-1]) {
                            last--;
                        }
                        last++;

                        start = last;
                        num1 = nums[last];
                        num2 = nums[i];
                    }
                }
            }

            if (len < i - start + 1) {
                len = i - start + 1;
                ind = start + 1;
            }
        }
        else {
            start = i;
            num1 = nums[i];
            num2 = -1;
        }
    }

    cout << len << " " << ind;

    /*
    int big = -1;
    int small = nums[0];
    int start = 0;
    int len = 0;
    int ind = 0;
    for (int i = 1; i < n; i++) {
        if (abs(nums[i] - nums[i-1]) <= 1) {
            if (nums[i] - nums[i-1] == 1) {
                if (small == nums[i-1]) {
                    big = nums[i];
                }
                else {
                    start = i;
                    small = nums[i];
                    big = -1;
                    continue;
                }
            }
            else if (nums[i] - nums[i-1] == -1) {
                if (big == -1) {
                    big = small;
                    small = nums[i];
                }
                else {
                    if (big == nums[i-1]) {
                        small = nums[i];
                    }
                    else {
                        start = i;
                        small = nums[i];
                        big = -1;
                        continue;
                    }
                }
            }

            if (len < i - start + 1) {
                len = i - start + 1;
                ind = start + 1;
            }
        }
        else {
            start = i;
            small = nums[i];
            big = -1;
        }
    }

    cout << len << " " << ind;
    */
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base55/55
1Elfogadva0/01ms316 KiB
2Elfogadva0/03ms316 KiB
3Elfogadva2/21ms316 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva2/21ms360 KiB
6Elfogadva2/21ms316 KiB
7Elfogadva3/31ms316 KiB
8Elfogadva2/22ms508 KiB
9Elfogadva3/31ms316 KiB
10Elfogadva3/34ms436 KiB
11Elfogadva3/33ms508 KiB
12Elfogadva3/33ms316 KiB
13Elfogadva3/330ms564 KiB
14Elfogadva3/318ms564 KiB
15Elfogadva3/325ms564 KiB
16Elfogadva3/332ms852 KiB
17Elfogadva3/332ms564 KiB
18Elfogadva3/332ms804 KiB
19Elfogadva3/332ms564 KiB
20Elfogadva3/332ms792 KiB
21Elfogadva3/317ms564 KiB
22Elfogadva3/326ms564 KiB