小m的刷子
小m的刷子
题目背景(Background)
小m买了一把新刷子,他很开心,于是买了红色、绿色、蓝色的油漆各一桶,想拿家门前的 \(N\)块排成一排 的白色地砖试试这把新刷子好不好用。
题目描述(Description)
他每次刷地砖可以把编号\(A\)到编号\(B\)(包含\(A\)与\(B\))的地砖一次性 全部 刷上一种颜色。
其中:\(0\)代表红色,\(1\)代表绿色,\(2\)代表蓝色。
比如他要把第\(2\)到第\(8\)块砖刷上红/绿/蓝色,就记(\(0\) \(2\) \(8\))/(\(1\) \(2\) \(8\))/(\(2\) \(2\) \(8\)) 。
小m有时候会重复粉刷同一块瓷砖。
已知红加绿或绿加红会变成黄色,红加蓝或蓝加红会变成紫色,绿加蓝或蓝加绿会变成青色,而黄/紫/青加上任何颜色都会变成黑色(黑色加上任何颜色仍然是黑色),问:
小m刷\(M\)次后有多少块地砖会变成黑色?有多少块地砖会变成紫色?
注意: 对于一块瓷砖,如果粉刷顺序为:红 红 红 红 红 蓝,最终颜色为紫色而不是黑色,而 红 红 蓝 红 会得到黑色。
输入输出格式(Format)
输入(Input)
第一行两个整数\(N\)、\(M\)以空格分开(\( 1 \leq N \leq 10^7 \), \( 1 \leq M \leq 10^5 \)),后面\(M\)行每行三个整数以空格分开,分别代表颜色和粉刷的起始位置, 保证粉刷起点编号小于终点编号 。
输出(Output)
一行两个以空格分开的整数,分别代表黑色的块数和紫色的块数。
输入输出样例(Example/Sample)
输入1(Input 1)
2 2
0 2 2
2 2 2
输出1(Output 1)
0 1
输入2(Input 2)
50 4
0 1 12
0 12 50
2 25 30
1 20 26
输出2(Output 2)
2 4
样例1解释(Explanation)
第一步在第二块瓷砖上刷上红色
瓷砖状态变为 :白 红
第二步在第二块瓷砖上刷上蓝色
瓷砖状态变为 :白 紫
最终黑色块数为\(0\),紫色块数为\(1\),输出\(0\) \(1\)
样例2解释(Explanation)
黑色瓷砖编号为:\(25\) \(26\)
紫色瓷砖编号为:\(27\) \(28\) \(29\) \(30\)
提示(Note)
AC率低是因为测试数据没搞好,我自己提交了好几十回。
瓷砖是一排,只有一排。
测试数据很有梯度,暴力出奇迹,冲冲冲。
时空限制(Limitation)
1 s,512 MB for each test case.
数据范围(Constraint)
对于 10% 的数据,满足\( 1 \leq N \leq 10,1 \leq M \leq 10\)
对于 20% 的数据,满足\( 1 \leq N \leq 500,1 \leq M \leq 100\)
对于 30% 的数据,满足\( 1 \leq N \leq 5000,1 \leq M \leq 5000\)
对于 40% 的数据,满足\( 1 \leq N \leq 10000,1 \leq M \leq 10000\)
对于 50% 的数据,满足\( 1 \leq N \leq 50000,1 \leq M \leq 10000\)
对于 60% 的数据,满足\( 1 \leq N \leq 100000,1 \leq M \leq 50000\)
对于 70% 的数据,满足\( 1 \leq N \leq 500000,1 \leq M \leq 50000\)
对于 80% 的数据,满足\( 1 \leq N \leq 5000000,1 \leq M \leq 50000\)
对于 90% 的数据,满足\( 1 \leq N \leq 5000000,1 \leq M \leq 100000\)
对于 100% 的数据,满足\( 1 \leq N \leq 10000000,1 \leq M \leq 100000\)
题目来源(Source)(原则上留下出题人的名字,方便答疑)
这么好的题目创意一定是来自黄锦宇啊
这么毒瘤的数据一定来自马青宇啊
信息
- ID
- 1004
- 难度
- 9
- 分类
- (无)
- 标签
- (无)
- 递交数
- 49
- 已通过
- 2
- 通过率
- 4%
- 被复制
- 1
- 上传者