145972025-01-19 17:47:40farkasrekaLeghosszabb béke (75 pont)cpp17Accepted 75/7579ms1152 KiB
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
    int N, M;
    cin >> N >> M;
    
    vector<pair<int, int>> a(M);
    for (int i = 0; i < M; i++) {
        cin >> a[i].first >> a[i].second;
    }

    sort(a.begin(), a.end());

    vector<pair<int, int>> b;
    b.push_back(a[0]);

    for (int i = 1; i < M; i++) {
        auto& elozo = b.back();
        auto most = a[i];
        if (elozo.second >= most.first) {
            elozo.second = max(most.second, elozo.second);
        } else {
            b.push_back(most);
        }
    }

    int eleje = 1;
    int max_hossz = b[0].first - 1;
    for (int j = 1; j < b.size(); j++) {
        int hossz = b[j].first - b[j - 1].second - 1;
        if (hossz > max_hossz) {
            max_hossz = hossz;
            eleje = b[j - 1].second + 1;
        }
    }

    int hossz = N - b.back().second;
    if (hossz > max_hossz) {
        max_hossz = hossz;
        eleje = b.back().second + 1;
    }

    if (max_hossz == 0) {
        cout << -1 << endl;
    } else {
        cout << max_hossz << " " << eleje << endl;
    }

    return 0;
}
SubtaskSumTestVerdictTimeMemory
base75/75
1Accepted0/01ms512 KiB
2Accepted0/079ms1076 KiB
3Accepted3/31ms316 KiB
4Accepted3/31ms316 KiB
5Accepted3/31ms316 KiB
6Accepted3/31ms316 KiB
7Accepted3/31ms316 KiB
8Accepted4/41ms316 KiB
9Accepted4/41ms352 KiB
10Accepted4/41ms316 KiB
11Accepted4/44ms448 KiB
12Accepted4/47ms356 KiB
13Accepted4/44ms436 KiB
14Accepted4/44ms440 KiB
15Accepted4/47ms316 KiB
16Accepted4/47ms460 KiB
17Accepted4/47ms316 KiB
18Accepted4/48ms500 KiB
19Accepted4/471ms1120 KiB
20Accepted4/474ms1152 KiB
21Accepted4/471ms1076 KiB
22Accepted4/474ms1140 KiB