Run ID:146471
提交时间:2026-01-28 17:42:47
def main(): import sys input = sys.stdin.read().split() ptr = 0 while ptr < len(input): L = int(input[ptr]) M = int(input[ptr+1]) ptr += 2 intervals = [] for _ in range(M): start = int(input[ptr]) end = int(input[ptr+1]) ptr += 2 intervals.append((start, end)) # 按区间起点排序 intervals.sort() if not intervals: print(L + 1) continue # 合并区间 merged = [intervals[0]] for current in intervals[1:]: last = merged[-1] if current[0] <= last[1]: # 重叠或相邻,合并 merged[-1] = (last[0], max(last[1], current[1])) else: merged.append(current) # 计算被移除的树的数量 removed = 0 for s, e in merged: removed += e - s + 1 # 剩余树的数量 remaining = (L + 1) - removed print(remaining) if __name__ == "__main__": main()