#include <stdio.h>
#include <stdlib.h>
typedef struct {
int start;
int end;
} Interval;
int cmp(const void* a, const void* b) {
return ((Interval*)a)->end - ((Interval*)b)->end;
}
void intervalCover(Interval* intervals, int size) {
qsort(intervals, size, sizeof(Interval), cmp);
printf("选择的区间为:\n");
int end = 0;
for (int i = 0; i < size; i++) {
if (intervals[i].start >= end) {
printf("[%d, %d]\n", intervals[i].start, intervals[i].end);
end = intervals[i].end;
}
}
}
int main() {
Interval intervals[] = { {1, 3}, {2, 4}, {3, 6}, {5, 7}, {6, 8}, {8, 10} };
int size = sizeof(intervals) / sizeof(intervals[0]);
intervalCover(intervals, size);
return 0;
}