145452025-01-14 16:13:52KristófLegtöbbször szomszédok (75 pont)cpp17Részben helyes 23/7529ms768 KiB
#include <iostream>
#include <vector>

using namespace std;

struct meg
{
int index;
int hanyszor;
bool n;
}typedef meg;

int main()
{
    //freopen("be2.txt","r",stdin);
    int n,lo;
    meg nagy;
    meg pontok;
    meg pontok2;
    meg kicsi;
    pontok.hanyszor=-1;
    pontok2.hanyszor=-1;

    cin>>n>>lo;
    lo--;
    int pont[n];

    for(int i=0;i<n;i++)
        {
        cin>>pont[i];
        }


    int min=0;
    int max=100002;
    bool na=0,ki=0;
    bool voltn=false,voltk=false;
    bool voltn2=false,voltk2=false;
    //cout<<pont[lo];
    for(int i=0;i<n;i++)
        {
        if(i>=lo)
            {
            nagy.hanyszor++;
            kicsi.hanyszor++;
            }

        //cout<<pont[i]<<" ";

        if(pont[i]>pont[lo] && pont[i]<max)
            {

            voltn=true;
            if(na)
                {
                if(nagy.hanyszor>pontok.hanyszor || pontok.hanyszor==-1)
                    {
                    voltn2=true;
                    pontok.hanyszor=nagy.hanyszor;
                    pontok.index=nagy.index;
                    }
                }
            else
                {
                na=true;
                }
            max=pont[i];
            nagy.index=i;
            nagy.n=true;
            nagy.hanyszor=0;

            }
            else if(pont[i]<pont[lo] && pont[i]>min)
                {
                //cout<<"bent"<<endl;
                voltk=true;
                if(ki)
                    {

                    if(kicsi.hanyszor>pontok2.hanyszor || pontok2.hanyszor==-1)
                        {
                        pontok2=kicsi;
                        voltk2=true;
                        }
                    }
                else
                    {
                    ki=true;
                    }
                min=pont[i];
                kicsi.index=i;
                kicsi.n=true;
                kicsi.hanyszor=0;
                }

        }
        if(voltn==false)
            {
            cout<<-1<<endl;
            }
        else if(voltn2==false)
            {

            cout<<nagy.index+1<<" "<<nagy.hanyszor<<endl;
            }
        else
            {
            if(nagy.hanyszor>pontok.hanyszor)
                {
                pontok.index=nagy.index;
                pontok.hanyszor=nagy.hanyszor;
                }
            cout<<pontok.index+1<<" "<<pontok.hanyszor<<endl;
            }
        if(voltk==false)
            {
            cout<<-1<<endl;
            }
        else if(voltk2==false)
            {

            cout<<kicsi.index+1<<"  "<<kicsi.hanyszor<<endl;
            }
        else
            {
            if(kicsi.hanyszor>pontok2.hanyszor)
                {
                pontok2.index=kicsi.index;
                pontok2.hanyszor=kicsi.hanyszor;
                }
            cout<<pontok2.index+1<<" "<<pontok2.hanyszor<<endl;
            }


    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base23/75
1Elfogadva0/01ms316 KiB
2Elfogadva0/026ms564 KiB
3Részben helyes1/21ms316 KiB
4Részben helyes1/21ms316 KiB
5Részben helyes2/41ms316 KiB
6Elfogadva4/41ms316 KiB
7Részben helyes1/31ms316 KiB
8Részben helyes2/41ms400 KiB
9Elfogadva4/43ms316 KiB
10Hibás válasz0/43ms316 KiB
11Részben helyes2/43ms316 KiB
12Hibás válasz0/46ms476 KiB
13Hibás válasz0/46ms316 KiB
14Részben helyes2/46ms500 KiB
15Hibás válasz0/46ms464 KiB
16Hibás válasz0/49ms504 KiB
17Hibás válasz0/413ms548 KiB
18Hibás válasz0/414ms588 KiB
19Hibás válasz0/427ms768 KiB
20Hibás válasz0/427ms576 KiB
21Hibás válasz0/427ms636 KiB
22Elfogadva4/429ms568 KiB