205342026-01-07 17:38:06algoproSíkság (55)cpp17Hibás válasz 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;
    */
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base53/55
1Elfogadva0/01ms316 KiB
2Elfogadva0/03ms508 KiB
3Elfogadva2/21ms500 KiB
4Elfogadva2/21ms316 KiB
5Hibás válasz0/21ms324 KiB
6Elfogadva2/22ms316 KiB
7Elfogadva3/31ms316 KiB
8Elfogadva2/21ms316 KiB
9Elfogadva3/32ms512 KiB
10Elfogadva3/34ms316 KiB
11Elfogadva3/33ms316 KiB
12Elfogadva3/33ms316 KiB
13Elfogadva3/330ms808 KiB
14Elfogadva3/317ms804 KiB
15Elfogadva3/324ms564 KiB
16Elfogadva3/332ms568 KiB
17Elfogadva3/332ms564 KiB
18Elfogadva3/332ms564 KiB
19Elfogadva3/332ms564 KiB
20Elfogadva3/332ms564 KiB
21Elfogadva3/317ms564 KiB
22Elfogadva3/326ms564 KiB