2662 2023. 01. 18 13:32:30 kicsiboglar Találkozás cpp11 Hibás válasz 52/55 86ms 15724 KiB
#include <iostream>
//#include <fstream>
#include <vector>
#include <deque>
#include <algorithm>
#include <climits>
#include <map>
#define ll long long 

using namespace std;
//ifstream cin ("input.in");
//ofstream cout ("output.out");

ll n,m,i,j,a,b,len=LLONG_MAX,start,nr,pos,mini=LLONG_MAX,curr;


struct element
{
    ll start=0,stop=0;
};


int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);

    cin>>n;
    map<ll,element> x;
    for (i=1;i<=n;++i)
    {
        cin>>a>>b;
        if (b-a+1<len)
        {
            len=b-a+1;
            pos=a;
        }
        //len=min(len,b-a+1);
        x[a].start++;
        x[b].stop++;
    }
    if (n<=2)
    {
        cout<<len<<"\n"<<pos<<" "<<pos+len-1;
        return 0;
    }
    deque <ll> v;
    a=0;
    ll half=(n+1)/2;
    pos=1;
    for (auto &e:x)
    {
        v.push_back(e.first);
        a+=e.second.start;
        while (!v.empty()&&a>half)
        {
            if (a-x[v[0]].stop>=half)
            {
                a-=x[v[0]].stop;
                v.pop_front();
            }
            else break;
        }
        if (a>=half&&e.first-v[0]+1<mini)
        {
            mini=e.first-v[0]+1;
            pos=v[0];
        }
        while (a==half&&!v.empty())
        {
            if (x[v[0]].stop>0) break;
            else v.pop_front();
        }
        if (a>=half&&e.first-v[0]+1<mini)
        {
            mini=e.first-v[0]+1;
            pos=v[0];
        }
    }
    
    cout<<mini<<"\n"<<pos<<" "<<pos+mini-1;

}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 52/55
1 Elfogadva 0/0 3ms 1828 KiB
2 Elfogadva 0/0 75ms 13444 KiB
3 Elfogadva 2/2 2ms 2228 KiB
4 Elfogadva 2/2 2ms 2428 KiB
5 Elfogadva 2/2 2ms 2660 KiB
6 Elfogadva 2/2 2ms 2988 KiB
7 Elfogadva 2/2 2ms 3072 KiB
8 Elfogadva 3/3 2ms 3056 KiB
9 Elfogadva 3/3 2ms 3144 KiB
10 Elfogadva 3/3 2ms 3160 KiB
11 Elfogadva 3/3 7ms 4724 KiB
12 Elfogadva 3/3 8ms 5492 KiB
13 Elfogadva 3/3 9ms 5708 KiB
14 Elfogadva 3/3 16ms 7116 KiB
15 Elfogadva 3/3 17ms 7176 KiB
16 Elfogadva 3/3 16ms 7084 KiB
17 Elfogadva 3/3 16ms 7232 KiB
18 Elfogadva 3/3 27ms 10108 KiB
19 Hibás válasz 0/3 86ms 12468 KiB
20 Elfogadva 3/3 20ms 4036 KiB
21 Elfogadva 3/3 75ms 15424 KiB
22 Elfogadva 3/3 76ms 15724 KiB