239442026-02-02 08:14:45pirosmacska10Leghosszabb béke (75 pont)cpp17Accepted 75/7539ms1576 KiB
#include <algorithm>
#include <climits>
#include <cmath>
#include <iostream>
#include <map>
#include <queue>
#include <set>
#include <stack>
#include <string>
#include <vector>
using namespace std;

using ll = long long;

vector<pair<int, int>> wars;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int n, m;
    cin >> n >> m;
    for (int i = 0; i < m; i++) {
        int a, b;
        cin >> a >> b;
        wars.push_back({a, b});
    }
    sort(wars.begin(), wars.end());

    
    int current_end = wars[0].second;
    int current_start = wars[0].first;
    int longest_peaceful = current_start - 1;
    int day = 1;
    for (int i = 1; i < m; i++) {
        if (wars[i].first <= current_end) {
            current_end = max(current_end, wars[i].second);
        } else {
            if (longest_peaceful < wars[i].first - current_end - 1) {
                longest_peaceful = wars[i].first - current_end - 1;
                day = current_end + 1;
            }
            current_start = wars[i].first;
            current_end = wars[i].second;
        }
    }
    if (longest_peaceful < n - current_end) {
        longest_peaceful = n - current_end;
        day = current_end + 1;
    }
    if(longest_peaceful) cout << longest_peaceful << " " << day << "\n";
    else cout << "-1\n";
    return 0;
}
SubtaskSumTestVerdictTimeMemory
base75/75
1Accepted0/01ms316 KiB
2Accepted0/039ms1568 KiB
3Accepted3/31ms316 KiB
4Accepted3/31ms316 KiB
5Accepted3/31ms316 KiB
6Accepted3/31ms316 KiB
7Accepted3/31ms316 KiB
8Accepted4/41ms316 KiB
9Accepted4/41ms316 KiB
10Accepted4/41ms316 KiB
11Accepted4/43ms544 KiB
12Accepted4/44ms316 KiB
13Accepted4/42ms316 KiB
14Accepted4/43ms316 KiB
15Accepted4/44ms316 KiB
16Accepted4/44ms316 KiB
17Accepted4/44ms564 KiB
18Accepted4/44ms564 KiB
19Accepted4/434ms1572 KiB
20Accepted4/435ms1460 KiB
21Accepted4/435ms1556 KiB
22Accepted4/435ms1576 KiB