2655 2023. 01. 18 12:10:12 kicsiboglar Találkozás cpp11 Hibás válasz 46/55 272ms 10508 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,start,nr,pos,mini=LLONG_MAX,curr;

struct adat
{
    ll value;
    bool st;
};

bool compare (const adat& a, const adat &b)
{
    if (a.value<b.value) return true;
    if (a.value==b.value) return a.st;
    return false;
}

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

    cin>>n;
    vector <adat> x(2*n+1);
    for (i=1;i<=n;++i)
    {
        cin>>a>>b;
        x[2*i-1].value=a;
        x[2*i-1].st=true;
        x[2*i].value=b;
        x[2*i].st=false;
        
    }

    sort (x.begin()+1, x.end(),compare);

    start=1;
    a=1;
    curr=2;
    ll middle=(n+1)/2;
    while (a<middle&&curr<=2*n)
    {
        if (x[curr].st) a++;
        curr++;
    }
    pos=1;
    mini=x[curr-1].value-x[start].value;
    while (curr<=2*n)
    {
        if (x[curr].st) a++;
        while (start<=curr&&a>middle)
        {
            if (!x[start].st) a--;
            start++;
        }
        while (a==middle) 
        {
            if (!x[start].st) break;
            start++;
        }
        if (a>=middle&&x[curr].value-x[start].value+1<mini)
        {
            mini=x[curr].value-x[start].value+1;
            pos=x[start].value;
        }
        curr++;
    }

    

    cout<<mini<<"\n"<<pos<<" "<<pos+mini-1;

}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 46/55
1 Elfogadva 0/0 3ms 1976 KiB
2 Elfogadva 0/0 56ms 8164 KiB
3 Hibás válasz 0/2 2ms 2220 KiB
4 Részben helyes 1/2 2ms 2344 KiB
5 Elfogadva 2/2 2ms 2532 KiB
6 Elfogadva 2/2 2ms 2656 KiB
7 Elfogadva 2/2 2ms 2820 KiB
8 Elfogadva 3/3 2ms 3024 KiB
9 Elfogadva 3/3 2ms 3092 KiB
10 Elfogadva 3/3 2ms 3316 KiB
11 Elfogadva 3/3 4ms 3456 KiB
12 Elfogadva 3/3 6ms 3860 KiB
13 Elfogadva 3/3 6ms 4024 KiB
14 Elfogadva 3/3 10ms 4576 KiB
15 Elfogadva 3/3 9ms 4512 KiB
16 Elfogadva 3/3 9ms 4652 KiB
17 Elfogadva 3/3 9ms 4652 KiB
18 Elfogadva 3/3 16ms 5820 KiB
19 Hibás válasz 0/3 43ms 10036 KiB
20 Időlimit túllépés 0/3 272ms 6588 KiB
21 Elfogadva 3/3 56ms 10508 KiB
22 Elfogadva 3/3 56ms 10452 KiB