139432025-01-09 12:07:52csdavidTalálkozáscpp17Accepted 55/5575ms1896 KiB
#include <iostream>
#include <algorithm>
#include <cmath>
//#include <fstream>
using namespace std;

int main()
{
    //ifstream fin("be2.txt");
    int n;
    cin >> n;
    int erk[n], tav[n], mini=10000000, minx, miny, fele, vendeg;
    fele=ceil(n/2.0);
    for(int i=0; i<n; i++){
        cin >> erk[i] >> tav[i];
    }
    sort(erk, erk+n);
    sort(tav, tav+n);
    int i1=0, i2=0; int erki=0, tavi=0;
    /*while(i1<=100000){
        //cout << i1 << ' ' << i2 << '\n';
        if(vendeg>=fele&&i2-i1<mini){
                minx=i1;
                miny=i2;
                mini=i2-i1;
        }
        while(vendeg<=fele||i2==i1){
            i2++;
            while(erki<n&&erk[erki]==i2){
                vendeg++;
                erki++;
            }
        }
        if(vendeg>=fele&&i2-i1<mini){
                minx=i1;
                miny=i2;
                mini=i2-i1;
        }
        else{
            while(vendeg>=fele&&i1<i2){
                while(tavi<n&&tav[tavi]==i1){
                    vendeg--;
                    tavi++;
                }
                i1++;
                if(vendeg>=fele&&i2-i1<mini){
                    minx=i1;
                    miny=i2;
                    mini=i2-i1;
                }
            }
        }
    }*/
    int ido1[100009], ido2[100009];
    for(int i=0; i<100009; i++){
        ido1[i]=0;
        ido2[i]=0;
    }
    for(int i=0; i<n; i++){
        ido1[erk[i]]++;
        ido2[tav[i]+1]--;
    }
    vendeg=ido1[0];
    /*for(int i=0; i<=19; i++){
        cout << i << ". idopont:\nerkeznek: " << ido1[i] << "\ntavoznak: " << ido2[i] << "\n\n";
    }*/
    while(i2<=100005){

        //cout << i1 << " -> " << i2 << ", vendeg: " << vendeg <<  '\n';

        if(vendeg>=fele&&abs(i2-i1)<mini){
                minx=i1;
                miny=i2;
                mini=i2-i1;
        }
        if(vendeg<fele||i1==i2){
            i2++;
            vendeg+=ido1[i2];
        }
        else{
            i1++;
            vendeg+=ido2[i1];
        }
    }
    cout << mini+1 << '\n' << minx << ' '<< miny << '\n';
    return 0;
}
SubtaskSumTestVerdictTimeMemory
base55/55
1Accepted0/02ms1076 KiB
2Accepted0/075ms1844 KiB
3Accepted2/22ms1076 KiB
4Accepted2/22ms1076 KiB
5Accepted2/22ms1076 KiB
6Accepted2/22ms1076 KiB
7Accepted2/22ms1092 KiB
8Accepted3/32ms1168 KiB
9Accepted3/32ms1120 KiB
10Accepted3/32ms1076 KiB
11Accepted3/36ms1180 KiB
12Accepted3/38ms1236 KiB
13Accepted3/38ms1248 KiB
14Accepted3/314ms1180 KiB
15Accepted3/314ms1332 KiB
16Accepted3/314ms1244 KiB
17Accepted3/314ms1308 KiB
18Accepted3/323ms1312 KiB
19Accepted3/371ms1844 KiB
20Accepted3/364ms1896 KiB
21Accepted3/374ms1756 KiB
22Accepted3/375ms1876 KiB