131452025-01-06 18:29:52ercseferencSíkság (55)cpp17Hibás válasz 41/5535ms1352 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(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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base41/55
1Elfogadva0/01ms500 KiB
2Elfogadva0/04ms316 KiB
3Elfogadva2/21ms508 KiB
4Elfogadva2/21ms316 KiB
5Hibás válasz0/21ms316 KiB
6Elfogadva2/21ms316 KiB
7Elfogadva3/31ms316 KiB
8Elfogadva2/21ms348 KiB
9Elfogadva3/32ms316 KiB
10Elfogadva3/34ms316 KiB
11Elfogadva3/33ms316 KiB
12Elfogadva3/33ms316 KiB
13Elfogadva3/332ms1076 KiB
14Elfogadva3/318ms820 KiB
15Elfogadva3/326ms1268 KiB
16Elfogadva3/332ms1328 KiB
17Hibás válasz0/334ms1332 KiB
18Hibás válasz0/335ms1116 KiB
19Elfogadva3/334ms1156 KiB
20Elfogadva3/334ms1352 KiB
21Hibás válasz0/317ms796 KiB
22Hibás válasz0/327ms1124 KiB