T3:新旧商铺
青少年儿童编程 青少年信息学联赛 2025年05月07日 11:00 安徽题目描述
在一个街道中有很多旧商铺,每个商铺从编号0到L依次排列。每个商铺原本都开着自己的小店,出售不同的商品。 不过,突然有一天,商铺的老板们决定开始拆除一些旧店铺,来改变布局。拆商铺者会按照一定的范围(从编号A到B)清理这些商铺,这样这些地方就没有商铺了,可能连地板都没有了。每当商铺被清理时,清理者不仅拆掉原本的建筑,还会清除店铺里的一切物品。 然而,城镇里也有一群商铺管理员,他们发现了这个问题,决定开始建立一些新商铺。在编号C到D的范围内,他们会重建这些商铺,铺上新地板、搭建新的建筑,并且放置一些商品。然而,有些地方商铺重新建好后,却被清理者又清除了。所以有一些新商铺又被清理掉了。 你的任务就是计算,在所有的清理和重建工作之后,街道里最终留下新商铺数量是多少,以及有多少新建的商铺被清理者重新拆除。
问题转换:
-
拆商铺:每次0 A B代表从编号A到编号B的商铺被拆除,拆除这些商铺。 -
新建商铺:每次 1 C D 代表从编号C到编号D重新建设商铺,把这些编号范围内没有商铺的地方建成新的商铺,并且放置商品。
最终你需要计算,剩下新商铺有多少,以及恢复后又被拆除的商铺数量。
输入格式
第一行,两个正整数L和N,表示校园外原来有L+1个店铺,并有N次拆店铺或新建店铺的操作。 以下N行,每行三个整数,表示拆店铺或新建店铺的标记和范围
输出格式
共两行。第一行校门外留下的店铺数目,第二行新建店铺又被拆除的数量
样例
输入数据 1
10 3
0 2 6
1 1 8
0 5 7
输出数据 1
3
2
输入数据 2
10 4
0 0 10
1 0 10
0 0 10
1 0 10
输出数据 2
11
11
数据范围
对于30%的数据,1≤L≤100,1≤N≤30。
对于60%的数据,1≤L≤1000,1≤N≤60。
对于100%的数据,1≤L≤10000 ,1≤N≤100 ,保证A≤B,C≤D。