34452023-02-27 22:32:33norbertvidaTalálkozáscpp17Time limit exceeded 52/55259ms6820 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(N * 2);
    for(int i = 0; i < N; i++) {
        cin >> idopontok[i * 2].mikor >> idopontok[i * 2 + 1].mikor;
        idopontok[i * 2].jott = true;
        idopontok[i * 2 + 1].jott = 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(v == 2 * N) break;
            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/043ms5076 KiB
3Accepted2/23ms2400 KiB
4Accepted2/23ms2472 KiB
5Accepted2/23ms2692 KiB
6Accepted2/23ms2904 KiB
7Accepted2/23ms3112 KiB
8Accepted3/33ms3120 KiB
9Accepted3/33ms3316 KiB
10Accepted3/33ms3188 KiB
11Accepted3/34ms3408 KiB
12Accepted3/36ms3452 KiB
13Accepted3/36ms3780 KiB
14Accepted3/38ms4116 KiB
15Accepted3/38ms4008 KiB
16Accepted3/38ms4008 KiB
17Accepted3/38ms4328 KiB
18Accepted3/313ms4608 KiB
19Accepted3/332ms6816 KiB
20Time limit exceeded0/3259ms4660 KiB
21Accepted3/343ms6820 KiB
22Accepted3/343ms6816 KiB