#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int beg, end;
char temp;
vector<vector<int>> blocks_temp;
// 读取输入
while(cin >> beg >> temp >> end) {
blocks_temp.push_back({beg, end});
}
// 按区间起始位置排序
sort(blocks_temp.begin(), blocks_temp.end());
vector<vector<int>> blocks;
blocks.push_back({blocks_temp[0][0], blocks_temp[0][1]});
// 合并区间
for(int i = 1; i < blocks_temp.size(); i++) {
if(blocks_temp[i][0] <= blocks.back()[1]) {
blocks.back()[1] = max(blocks_temp[i][1], blocks.back()[1]);
} else {
blocks.push_back({blocks_temp[i][0], blocks_temp[i][1]});
}
}
// 输出结果
for(int i = 0; i < blocks.size(); i++) {
cout << blocks[i][0] << "," << blocks[i][1];
if(i < blocks.size() - 1) cout << " ";
}
return 0;
}
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String line = sc.nextLine();
String[] intervals = line.split(" ");
List<int[]> blocksList = new ArrayList<>();
for(String interval : intervals) {
String[] nums = interval.split(",");
blocksList.add(new int[]{
Integer.parseInt(nums[0]),
Integer.parseInt(nums[1])
});
}
// 按区间起始位置排序
Collections.sort(blocksList, (a, b) -> a[0] - b[0]);
List<int[]> result = new ArrayList<>();
result.add(blocksList.get(0));
// 合并区间
for(int i = 1; i < blocksList.size(); i++) {
if(blocksList.get(i)[0] <= result.get(result.size()-1)[1]) {
result.get(result.size()-1)[1] = Math.max(
blocksList.get(i)[1],
result.get(result.size()-1)[1]
);
} else {
result.add(blocksList.get(i));
}
}
// 输出结果
for(int i = 0; i < result.size(); i++) {
System.out.print(result.get(i)[0] + "," + result.get(i)[1]);
if(i < result.size() - 1) System.out.print(" ");
}
}
}
def merge_intervals(intervals):
# 按区间起始位置排序
intervals.sort(key=lambda x: x[0])
result = [intervals[0]]
# 合并区间
for interval in intervals[1:]:
if interval[0] <= result[-1][1]:
result[-1][1] = max(interval[1], result[-1][1])
else:
result.append(interval)
return result
# 读取输入
line = input().strip()
intervals = []
for interval in line.split():
start, end = map(int, interval.split(','))
intervals.append([start, end])
# 合并区间并输出
result = merge_intervals(intervals)
print(' '.join(f'{interval[0]},{interval[1]}' for interval in result))