129892025-01-04 15:51:58csdavidSíkság (55)cpp17Elfogadva 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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base55/55
1Elfogadva0/01ms320 KiB
2Elfogadva0/03ms320 KiB
3Elfogadva2/21ms508 KiB
4Elfogadva2/21ms320 KiB
5Elfogadva2/21ms320 KiB
6Elfogadva2/21ms332 KiB
7Elfogadva3/31ms320 KiB
8Elfogadva2/21ms320 KiB
9Elfogadva3/31ms500 KiB
10Elfogadva3/34ms408 KiB
11Elfogadva3/33ms404 KiB
12Elfogadva3/33ms320 KiB
13Elfogadva3/330ms404 KiB
14Elfogadva3/317ms400 KiB
15Elfogadva3/324ms404 KiB
16Elfogadva3/330ms396 KiB
17Elfogadva3/332ms400 KiB
18Elfogadva3/332ms400 KiB
19Elfogadva3/332ms404 KiB
20Elfogadva3/332ms404 KiB
21Elfogadva3/317ms320 KiB
22Elfogadva3/326ms400 KiB