| Run ID | 作者 | 问题 | 语言 | 测评结果 | Time | Memory | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|
| 146471 | 谢尚昊 | 校门外的树 | Python3 | Accepted | 28 MS | 3828 KB | 1161 | 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()