Baekjoon #20440

Baekjoon #20440

1개의 풀이 · C++

문제 원문 보기 ↗

SOLUTION INFO

C++ · main.cpp

main.cpp
#include<bits/stdc++.h>

using namespace std;
typedef long long ll;

vector<pair<int, int>> V;
int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);

    int N; cin >> N;
    for(int i=0;i<N;i++) {
        int s, e; cin >> s >> e;
        V.emplace_back(s, +1);
        V.emplace_back(e, -1);
    }
    sort(V.begin(),V.end());
    int ansL = -1, ansR = -1;
    int sum = 0, mx = 0;
    for(int i=0;i<2 * N;i++) {
        sum += V[i].second;
        mx = max(mx, sum);
    }

    for(int i=0;i<2 * N;i++) {
        sum += V[i].second;
        if(i + 1 < 2 * N && V[i + 1].first == V[i].first) continue;
        if(!~ansL) {
            if(sum == mx) {
                ansL = V[i].first;
            }
        }
        else if(sum != mx) {
            ansR = V[i].first;
            break;
        }
    }
    cout << mx << '\n';
    cout << ansL << " " << ansR;

    return 0;
}

SOLUTION DESCRIPTION

풀이 설명

등록된 풀이 설명이 없습니다.