2998 2023. 02. 07 17:09:22 Tina0731 Zsonglőrködés cpp11 Időlimit túllépés 35/100 1.6s 8724 KiB
#include <iostream>
#include <bits/stdc++.h>

using namespace std;

typedef struct
{
    int e;
    int v;
    bool volte=false;
}Interv;

/*
9
1 3
8 10
1 7
2 7
2 3
9 11
2 4
3 9
3 8
*/

bool eszerint(Interv i1, Interv i2)
{
    if(i1.e!=i2.e)
        return i1.e<i2.e;
    else
        return i1.v<i2.v;
}

void qkiir(queue<Interv> q)
{
    queue<Interv> seged=q;
    Interv v;
    while(!seged.empty())
    {
        v=seged.front();
        cout<<v.e<<". ."<<v.v<<" ";
        seged.pop();
    }
    cout<<endl;
}

int main()
{
    int n;
    cin>>n;
    vector<Interv> musor(n);

    for(int i=0;i<n;i++)
    {
        cin>>musor.at(i).e>>musor.at(i).v;
    }

    /*for(Interv x : musor)
        cout<<x.e<<"-"<<x.v<<" ";
    cout<<endl;*/

    sort(musor.begin(),musor.end(), eszerint);
    //cout<<endl;
    /*for(Interv x : musor)
        cout<<x.e<<"-"<<x.v<<endl;
    cout<<endl;*/


    queue<Interv> sor;
    Interv jelol;
    jelol.e=-1;
    jelol.v=-1;

    for(Interv x : musor)
    {
        sor.push(x);

    }
    sor.push(jelol);
    //qkiir(sor);

    /*while(sor.size()>1)
    {
        Interv most;
        most=sor.front();
        cout<<most.e<<"--"<<most.v<<" ";
        sor.pop();
        Interv uj=sor.front();
        while(most.v<uj.e && uj.e!=-1)
        {
            sor.push(uj);
            sor.pop();
            uj=sor.front();
            qkiir(sor);
        }
        if(most.v==uj.e)
        {
            cout<<uj.e<<"--"<<uj.v<<" ";
            most=uj;
            sor.pop();
            uj=sor.front();
            qkiir(sor);
        }
        else if (uj.e==-1)
        {
            sor.pop();
            sor.push(uj);
            //most=sor.front();
            qkiir(sor);
        }

    }*/

    //Interv seged;
    int szamol=0;
    while(sor.size()>1)
    {
        Interv most;
        most=sor.front();
        //cout<<most.e<<"--"<<most.v<<" ";
        sor.pop();
        //Interv uj=sor.front();
        //cout<<most.e<<" "<<most.v<<" --> ";
        while(sor.front().e!=-1)
        {
            if(most.v==sor.front().e)
            {
                most=sor.front();
                sor.pop();
                //cout<<most.e<<" "<<most.v<<" --> ";
            }
            else
            {
                sor.push(sor.front());
                sor.pop();

            }
        }
        //cout<<endl;
        szamol++;
        sor.push(sor.front());
        sor.pop();

    }
    cout<<szamol;


    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Elfogadva 3ms 1816 KiB
2 Elfogadva 3ms 2056 KiB
subtask2 0/20
3 Elfogadva 13ms 2436 KiB
4 Időlimit túllépés 1.536s 3400 KiB
5 Időlimit túllépés 1.549s 5632 KiB
6 Időlimit túllépés 1.544s 6604 KiB
7 Időlimit túllépés 1.575s 6940 KiB
8 Időlimit túllépés 1.585s 7264 KiB
9 Időlimit túllépés 1.572s 7464 KiB
10 Időlimit túllépés 1.559s 7600 KiB
11 Időlimit túllépés 1.567s 7608 KiB
subtask3 35/35
12 Elfogadva 3ms 3568 KiB
13 Elfogadva 3ms 3572 KiB
14 Elfogadva 3ms 3708 KiB
15 Elfogadva 3ms 3952 KiB
16 Elfogadva 4ms 3880 KiB
17 Elfogadva 4ms 3968 KiB
18 Elfogadva 4ms 4004 KiB
19 Elfogadva 4ms 4232 KiB
20 Elfogadva 4ms 4192 KiB
subtask4 0/45
21 Elfogadva 13ms 4464 KiB
22 Időlimit túllépés 1.6s 5328 KiB
23 Időlimit túllépés 1.569s 7540 KiB
24 Időlimit túllépés 1.567s 8284 KiB
25 Időlimit túllépés 1.575s 8724 KiB
26 Időlimit túllépés 1.537s 8592 KiB
27 Időlimit túllépés 1.555s 8600 KiB
28 Időlimit túllépés 1.547s 8660 KiB
29 Időlimit túllépés 1.564s 8660 KiB