34442023-02-27 22:06:46norbertvidaTalálkozáscpp17Time limit exceeded 52/55280ms7944 KiB
#include <bits/stdc++.h>

using namespace std;

struct ip {
    int mikor;
    bool jott;
};

int main() {
    iostream::sync_with_stdio(0);
    cin.tie(0);
    int N;
    cin >> N;
    int fel = (N >> 1) + (N & 1);
    vector<ip> idopontok;
    for(int i = 0, t; i < N; i++) {
        cin >> t;
        idopontok.push_back({ t, true });
        cin >> t;
        idopontok.push_back({ t, false });
    }
    sort(idopontok.begin(), idopontok.end(), [](const ip &a, const ip &b) -> bool {
        return a.mikor == b.mikor ? a.jott : a.mikor < b.mikor;
    });
    int kezd = 0, veg = 0, hossz = 0, jelen = 0, u = 0, v = -1, opt_kezd = -1, opt_veg = -1, opt_hossz = 1e9;
    while(v < 2 * N) {
        while(jelen < fel && v < 2 * N) {
            v++;
            if(idopontok[v].jott) jelen++;
        }
        if(v == 2 * N) break;
        while(idopontok[u].jott && u < v) u++;
        kezd = idopontok[u].mikor;
        veg = idopontok[v].mikor;
        hossz = veg - kezd;
        if(hossz < opt_hossz) {
            opt_hossz = hossz;
            opt_kezd = kezd;
            opt_veg = veg;
        }
        u++;
        jelen--;
    }
    cout << opt_hossz + 1 << "\n" << opt_kezd << " " << opt_veg << "\n";
}
SubtaskSumTestVerdictTimeMemory
base52/55
1Accepted0/03ms1828 KiB
2Accepted0/046ms6252 KiB
3Accepted2/23ms2104 KiB
4Accepted2/23ms2228 KiB
5Accepted2/23ms2464 KiB
6Accepted2/23ms2536 KiB
7Accepted2/23ms2672 KiB
8Accepted3/33ms2872 KiB
9Accepted3/33ms3096 KiB
10Accepted3/33ms3076 KiB
11Accepted3/34ms3660 KiB
12Accepted3/36ms3840 KiB
13Accepted3/36ms3968 KiB
14Accepted3/39ms4872 KiB
15Accepted3/38ms5168 KiB
16Accepted3/38ms5020 KiB
17Accepted3/38ms5020 KiB
18Accepted3/314ms5148 KiB
19Accepted3/335ms7900 KiB
20Time limit exceeded0/3280ms5212 KiB
21Accepted3/346ms7944 KiB
22Accepted3/346ms7896 KiB