127662024-12-30 10:41:37ruffbrigiSíkság (55)cpp17Futási hiba 17/5541ms2636 KiB
#include <iostream>
#include <set>

using namespace std;

int main()
{
    int n,m;
    cin>>n;
    int a[n+1];
    multiset<int> nov;
    cin>>m;
    a[1]=m;
    nov.insert(a[1]);
    int maxsiksag=1,mini=1,maxi=1,kezd=1,maxkezd=1;
    for(int i=2;i<=n;i++)
    {
        cin>>m;
        a[i]=m;
        if(m<*nov.begin() && *nov.begin()-m>1 || m>*nov.rbegin() && m-*nov.rbegin()>1)
        {
            if(nov.size()>maxsiksag)
            {
                maxsiksag=nov.size();
                maxkezd=kezd;
            }
            nov.clear();
            nov.insert(m);
            kezd=i;
        }
        else
        {
            nov.insert(a[i]);
            if(*nov.begin()-*nov.rbegin()==-1 || *nov.begin()-*nov.rbegin()==0)
            {
                if(a[i]==*nov.begin()) mini=i;
                if(a[i]==*nov.rbegin()) maxi=i;
            }
            else
            {
                if(m>*nov.rbegin())
                {
                    if(nov.size()-1>maxsiksag)
                    {
                        maxsiksag=nov.size()-1;
                        maxkezd=kezd;
                    }
                    for(int j=kezd;j<=mini;j++)
                    {
                        nov.erase(a[j]);
                    }
                    kezd=mini+1;
                    mini=maxi;
                    maxi=i;
                }
                else
                {
                    if(nov.size()-1>maxsiksag)
                    {
                        maxsiksag=nov.size()-1;
                        maxkezd=kezd;
                    }
                    for(int j=kezd;j<=maxi;j++)
                    {
                        nov.erase(a[j]);
                    }
                    kezd=maxi+1;
                    maxi=mini;
                    mini=i;
                }
            }
        }
    }
    cout<<maxsiksag<<" "<<maxkezd;
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base17/55
1Elfogadva0/01ms512 KiB
2Futási hiba0/01ms320 KiB
3Hibás válasz0/21ms320 KiB
4Elfogadva2/21ms320 KiB
5Elfogadva2/21ms320 KiB
6Elfogadva2/21ms508 KiB
7Hibás válasz0/31ms320 KiB
8Elfogadva2/21ms320 KiB
9Elfogadva3/31ms320 KiB
10Hibás válasz0/34ms320 KiB
11Hibás válasz0/34ms440 KiB
12Hibás válasz0/34ms824 KiB
13Futási hiba0/34ms508 KiB
14Elfogadva3/341ms2636 KiB
15Hibás válasz0/341ms1720 KiB
16Futási hiba0/341ms1092 KiB
17Futási hiba0/317ms1788 KiB
18Futási hiba0/32ms320 KiB
19Futási hiba0/335ms1592 KiB
20Futási hiba0/31ms320 KiB
21Futási hiba0/31ms320 KiB
22Elfogadva3/339ms1848 KiB