129892025-01-04 15:51:58csdavidSíkság (55)cpp17Accepted 55/5532ms508 KiB
#include <iostream>

using namespace std;

int main()
{
    int n, a, hossz=0, maxkezd, maxhossz=0, kezd1=-100, kezd2=-100, veg1=-100, veg2=-100, mag1=-1, mag2=-1;
    cin >> n;
    for(int i=1; i<=n; i++){
        cin >> a;
        if(a==mag1||a==mag2){
            hossz++;
            if(a==mag1){
                veg1=i;
            }
            else{
                veg2=i;
            }
        }
        else if(abs(a-mag1)==1){
            if(kezd2>0){
                if(hossz>maxhossz){
                    maxhossz=hossz;
                    maxkezd=min(kezd1, kezd2);
                }
                mag2=a;
                kezd2=i;
                kezd1=veg2+1;
                veg2=kezd2;
                hossz=i-kezd1+1;
                if(kezd1==kezd2){
                    swap(mag1, mag2);
                    swap(kezd1, kezd2);
                    swap(veg1, veg2);
                    mag2=-5;
                    kezd2=-5;
                    veg2=-5;
                }
            }
            else{
                hossz++;
                mag2=a;
                kezd2=i;
                veg2=i;
            }
        }
        else if(abs(a-mag2)==1){
            if(hossz>maxhossz){
                maxhossz=hossz;
                maxkezd=min(kezd1, kezd2);
            }
            swap(mag1, mag2);
            swap(kezd1, kezd2);
            swap(veg1, veg2);
            mag2=a;
            kezd2=i;
            kezd1=veg2+1;
            veg2=kezd2;
            hossz=i-kezd1+1;
            if(kezd1==kezd2){
                swap(mag1, mag2);
                swap(kezd1, kezd2);
                swap(veg1, veg2);
                mag2=-5;
                kezd2=-5;
                veg2=-5;
            }
        }
        else{

            if(hossz>maxhossz){
                maxhossz=hossz;
                if(kezd2<0) kezd2=1010101010;
                maxkezd=min(kezd1, kezd2);
            }
            hossz=1;
            mag1=a;
            mag2=-2;
            veg1=i;
            kezd1=i;
            kezd2=-5;
            veg2=-5;
        }
    }
    if(hossz>maxhossz){
        maxhossz=hossz;
        if(kezd2<0) kezd2=1010101010;
        maxkezd=min(kezd1, kezd2);
    }
    cout << maxhossz << ' ' <<maxkezd;
    return 0;
}
SubtaskSumTestVerdictTimeMemory
base55/55
1Accepted0/01ms320 KiB
2Accepted0/03ms320 KiB
3Accepted2/21ms508 KiB
4Accepted2/21ms320 KiB
5Accepted2/21ms320 KiB
6Accepted2/21ms332 KiB
7Accepted3/31ms320 KiB
8Accepted2/21ms320 KiB
9Accepted3/31ms500 KiB
10Accepted3/34ms408 KiB
11Accepted3/33ms404 KiB
12Accepted3/33ms320 KiB
13Accepted3/330ms404 KiB
14Accepted3/317ms400 KiB
15Accepted3/324ms404 KiB
16Accepted3/330ms396 KiB
17Accepted3/332ms400 KiB
18Accepted3/332ms400 KiB
19Accepted3/332ms404 KiB
20Accepted3/332ms404 KiB
21Accepted3/317ms320 KiB
22Accepted3/326ms400 KiB