127742024-12-30 11:35:35ruffbrigiSíkság (55)cpp17Hibás válasz 53/5552ms2652 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
        {
            int ln=*nov.rbegin(),lk=*nov.begin();
            nov.insert(a[i]);
            if(*nov.begin()-*nov.rbegin()==-1 || *nov.begin()-*nov.rbegin()==0)
            {
                if(a[i]==lk) mini=i;
                if(a[i]==ln) maxi=i;
            }
            else
            { //cout<<"hoppa: "<<i<<" m="<<m<<" nagyobb="<<ln<<endl;
                if(m>ln)
                {
                    //cout<<"mini="<<mini<<endl;
                    if(nov.size()-1>maxsiksag)
                    {
                        maxsiksag=nov.size()-1;
                        maxkezd=kezd;
                    }
                    nov.clear();
                    for(int j=mini+1;j<=i;j++)
                    {
                        nov.insert(a[j]);
                    }
                    kezd=mini+1;
                    mini=maxi;
                    maxi=i;
                }
                else
                {
                    if(nov.size()-1>maxsiksag)
                    {
                        maxsiksag=nov.size()-1;
                        maxkezd=kezd;
                    }
                    nov.clear();
                    for(int j=maxi+1;j<=i;j++)
                    {
                        nov.insert(a[j]);
                    }
                    kezd=maxi+1;
                    maxi=mini;
                    mini=i;
                }
                //cout<<"uj kezd: "<<kezd<<endl;
            }
        }
    }
    if(nov.size()>maxsiksag)
    {
        maxsiksag=nov.size();
        maxkezd=kezd;
    }
    cout<<maxsiksag<<" "<<maxkezd;
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base53/55
1Hibás válasz0/01ms500 KiB
2Hibás válasz0/04ms568 KiB
3Elfogadva2/21ms508 KiB
4Hibás válasz0/21ms320 KiB
5Elfogadva2/21ms340 KiB
6Elfogadva2/21ms320 KiB
7Elfogadva3/31ms320 KiB
8Elfogadva2/21ms332 KiB
9Elfogadva3/31ms320 KiB
10Elfogadva3/34ms320 KiB
11Elfogadva3/34ms320 KiB
12Elfogadva3/34ms824 KiB
13Elfogadva3/341ms692 KiB
14Elfogadva3/350ms2652 KiB
15Elfogadva3/343ms1820 KiB
16Elfogadva3/350ms988 KiB
17Elfogadva3/352ms1848 KiB
18Elfogadva3/350ms1488 KiB
19Elfogadva3/350ms1700 KiB
20Elfogadva3/350ms1592 KiB
21Elfogadva3/325ms1080 KiB
22Elfogadva3/341ms1852 KiB