131482025-01-06 18:36:39ercseferencSíkság (55)cpp17Wrong answer 41/5532ms788 KiB
#include <iostream>
using namespace std;
int main()
{
    int 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 kez,veg,tav=0,vege,kezdet;
    while(!vegev){
        int koz=a[j],kozind=j,k=j; kez=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;}
        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<<tav+1<<" "<<kezdet+1;
    return 0;
}
SubtaskSumTestVerdictTimeMemory
base41/55
1Accepted0/01ms316 KiB
2Accepted0/03ms316 KiB
3Accepted2/21ms508 KiB
4Accepted2/21ms316 KiB
5Wrong answer0/21ms316 KiB
6Accepted2/21ms316 KiB
7Accepted3/31ms316 KiB
8Accepted2/21ms404 KiB
9Accepted3/31ms316 KiB
10Accepted3/34ms316 KiB
11Accepted3/33ms316 KiB
12Accepted3/33ms500 KiB
13Accepted3/332ms728 KiB
14Accepted3/317ms600 KiB
15Accepted3/325ms788 KiB
16Accepted3/330ms784 KiB
17Wrong answer0/332ms700 KiB
18Wrong answer0/332ms588 KiB
19Accepted3/332ms600 KiB
20Accepted3/332ms744 KiB
21Wrong answer0/317ms500 KiB
22Wrong answer0/325ms504 KiB