Submission

Status:
[P-SSS][SSSSS][SSSSSSSSSS]

Score: 0

User: Punnawith

Problemset: ห้องสมุดเมือง 3M

Language: cpp

Time: 0.003 second

Submitted On: 2025-03-22 19:27:53

#include <iostream>
#include <vector>

using namespace std;

int main() {
    int n;
    cin >> n;

    vector<pair<int, int>> intervals(n);
    int totalCount = 0;  

    for (int i = 0; i < n; i++) {
        cin >> intervals[i].first >> intervals[i].second;
        totalCount += (intervals[i].second - intervals[i].first);
    }

    int m1, m2;
    if (totalCount % 2 == 0) {
        m1 = totalCount / 2;
        m2 = m1 + 1;
    } else {
        m1 = (totalCount + 1) / 2;
        m2 = m1;
    }

    int currentCount = 0;
    int median1 = 0, median2 = 0;

    for (const auto& interval : intervals) {
        int x1 = interval.first, x2 = interval.second;
        int rangeSize = x2 - x1;

        if (currentCount < m1 && currentCount + rangeSize >= m1) {
            median1 = x1 + (m1 - currentCount - 1);
        }
        if (currentCount < m2 && currentCount + rangeSize >= m2) {
            median2 = x1 + (m2 - currentCount - 1);
        }

        currentCount += rangeSize;
    }

    int median = (median1 + median2) / 2;
    cout << median;
}