class Solution {
public:
vector<Interval> insert(vector<Interval>& intervals, Interval newInterval) {
int idx = 0;
vector<Interval> res;
int n = intervals.size();
while (idx < n && intervals[idx].end < newInterval.start)
res.push_back(intervals[idx++]);
while (idx < n && intervals[idx].start <= newInterval.end) {
newInterval.start = min(newInterval.start, intervals[idx].start);
newInterval.end = max(newInterval.end, intervals[idx++].end);
}
res.push_back(newInterval);
while (idx < n)
res.push_back(intervals[idx++]);
return res;
}
};