131522025-01-06 19:04:53ercseferencSíkság (55)cpp17Elfogadva 55/5532ms748 KiB
#include <iostream>
//#include <fstream>
using namespace std;
int main()
{
    int n; //ifstream f("szamok.txt"); f>>n;
    cin>>n;
    int a[n+1]; for(int i=0; i<n; i++){cin>>a[i];}
    bool vegev=0; int mini,minind,maxi,maxind; a[n]=-1;
    int j=0; bool siksag=1; int veg,tav=-1,vege,kezdet;
    while(!vegev){
        int kez=j,k=j;
        while(a[k]==a[k+1]){k++;}
        if(k+1==n){veg=k; siksag=0; vegev=1;}
        else if(a[k+1]==a[j]+1){mini=a[j]; minind=j;
            maxi=a[k+1]; maxind=k+1; siksag=1;}
        else if(a[k+1]==a[j]-1){mini=a[k+1]; minind=k+1;
            maxi=a[j]; maxind=j; siksag=1;}
        else{siksag=0; veg=k; j=k+1;}
        while(siksag){
            if(a[k]!=a[k+1]){
                if(k==n-1){siksag=0; veg=k; vegev=1;}
                else if(a[k+1]==maxi){maxind=k+1;}
                else if (a[k+1]==mini){minind=k+1;}
                else if(a[k]-a[k+1]>1 || a[k+1]-a[k]>1){
                    j=k+1; siksag=0; veg=k;}
                else if(a[k+1]==maxi+1){j=maxind; siksag=0; veg=k;}
                else if(a[k+1]==mini-1){j=minind; siksag=0; veg=k;}}
            k++;}
        if(veg-kez>tav){tav=veg-kez; vege=veg; kezdet=kez;}}
    cout<<vege-kezdet+1<<" "<<kezdet+1;
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base55/55
1Elfogadva0/01ms316 KiB
2Elfogadva0/03ms316 KiB
3Elfogadva2/21ms316 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva2/21ms508 KiB
6Elfogadva2/21ms316 KiB
7Elfogadva3/31ms316 KiB
8Elfogadva2/21ms320 KiB
9Elfogadva3/31ms316 KiB
10Elfogadva3/34ms316 KiB
11Elfogadva3/33ms408 KiB
12Elfogadva3/33ms400 KiB
13Elfogadva3/330ms732 KiB
14Elfogadva3/317ms660 KiB
15Elfogadva3/324ms544 KiB
16Elfogadva3/332ms748 KiB
17Elfogadva3/332ms564 KiB
18Elfogadva3/332ms576 KiB
19Elfogadva3/332ms580 KiB
20Elfogadva3/332ms616 KiB
21Elfogadva3/317ms572 KiB
22Elfogadva3/325ms512 KiB