135232025-01-08 09:22:42feheristvanTalálkozáscpp17Accepted 55/5567ms1160 KiB
#include <iostream>
using namespace std;

int erk[100001]{ 0 }; // Count occurrences for the first value
int tav[100001]{ 0 }; // Count occurrences for the second value

int main() {
    int n, max = 0, a, b;
    cin >> n;

    for (int i = 1; i <= n; i++) {
        cin >> a >> b;
        erk[a]++;
        tav[b]++;
        if (b > max)
            max = b;
    }

    int kez = 1, veg = 0, ossz = 0, kezjo, vegjo, db = 1000001, joe = 1;

    while (kez <= max) {
        while (ossz < ((n + 1) / 2) && veg < max) {
            veg++;
            ossz += erk[veg];
        }
        if (veg == max && ossz < (n + 1) / 2) {
            joe = 0;
        }
        if (veg - kez + 1 < db && joe == 1 && veg - kez + 1 > 0) {
            db = veg - kez + 1;
            kezjo = kez;
            vegjo = veg;
        }
        ossz -= tav[kez];
        kez++;
    }

    cout << db << endl;
    cout << kezjo << " " << vegjo;

    return 0;
}
SubtaskSumTestVerdictTimeMemory
base55/55
1Accepted0/01ms500 KiB
2Accepted0/064ms1072 KiB
3Accepted2/21ms316 KiB
4Accepted2/21ms316 KiB
5Accepted2/21ms316 KiB
6Accepted2/21ms316 KiB
7Accepted2/21ms316 KiB
8Accepted3/31ms316 KiB
9Accepted3/31ms316 KiB
10Accepted3/31ms316 KiB
11Accepted3/34ms568 KiB
12Accepted3/37ms740 KiB
13Accepted3/37ms800 KiB
14Accepted3/313ms588 KiB
15Accepted3/313ms740 KiB
16Accepted3/312ms564 KiB
17Accepted3/312ms712 KiB
18Accepted3/320ms940 KiB
19Accepted3/367ms692 KiB
20Accepted3/359ms412 KiB
21Accepted3/364ms1084 KiB
22Accepted3/364ms1160 KiB