34432023-02-27 22:01:49norbertvidaTalálkozáscpp17Time limit exceeded 52/55270ms8100 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, opt_db = -1;
    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;
            opt_db = 1;
        } else if(hossz == opt_hossz) {
            opt_db++;
        }
        u++;
        jelen--;
    }
    cout << opt_hossz + 1 << "\n" << opt_kezd << " " << opt_veg << "\n";
}
SubtaskSumTestVerdictTimeMemory
base52/55
1Accepted0/03ms1956 KiB
2Accepted0/046ms6360 KiB
3Accepted2/23ms2280 KiB
4Accepted2/23ms2516 KiB
5Accepted2/23ms2616 KiB
6Accepted2/23ms2740 KiB
7Accepted2/23ms2844 KiB
8Accepted3/33ms2952 KiB
9Accepted3/33ms3092 KiB
10Accepted3/33ms3260 KiB
11Accepted3/34ms3444 KiB
12Accepted3/36ms3872 KiB
13Accepted3/36ms3992 KiB
14Accepted3/38ms4456 KiB
15Accepted3/38ms4452 KiB
16Accepted3/38ms4712 KiB
17Accepted3/38ms4900 KiB
18Accepted3/314ms4860 KiB
19Accepted3/335ms8100 KiB
20Time limit exceeded0/3270ms5388 KiB
21Accepted3/346ms7980 KiB
22Accepted3/345ms7876 KiB