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;
}