205342026-01-07 17:38:06algoproSíkság (55)cpp17Wrong answer 53/5532ms808 KiB
// UUID: 4cf21728-b3eb-4a1f-97f4-d3eb6f689bef
#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 = 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])) {
                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;
    */
}
SubtaskSumTestVerdictTimeMemory
base53/55
1Accepted0/01ms316 KiB
2Accepted0/03ms508 KiB
3Accepted2/21ms500 KiB
4Accepted2/21ms316 KiB
5Wrong answer0/21ms324 KiB
6Accepted2/22ms316 KiB
7Accepted3/31ms316 KiB
8Accepted2/21ms316 KiB
9Accepted3/32ms512 KiB
10Accepted3/34ms316 KiB
11Accepted3/33ms316 KiB
12Accepted3/33ms316 KiB
13Accepted3/330ms808 KiB
14Accepted3/317ms804 KiB
15Accepted3/324ms564 KiB
16Accepted3/332ms568 KiB
17Accepted3/332ms564 KiB
18Accepted3/332ms564 KiB
19Accepted3/332ms564 KiB
20Accepted3/332ms564 KiB
21Accepted3/317ms564 KiB
22Accepted3/326ms564 KiB