/ 基础 / 题库 /

剪刀 / Škare

剪刀 / Škare

时间限制:1秒  内存限制:256M


题目描述

为了把使用剪刀的技能练到极致,Fran 想出了一个新的训练方法。

他有一条长度为 \(n\) 厘米的纸条和一把剪刀,并请 Lana 给他下达切割指令。

Lana 会给 Fran 共 \(k\) 条指令,每条形如:“把第 \(x\) 条纸条在距离左端 \(l\) 厘米处剪开”。

一开始 Fran 只有一条纸条。第一次剪开后会得到两段:长度分别为 \(l\) 和 \(n-l\)。此后每次剪开某一段纸条时,新产生的两段会**替换**原来那一段,并保持在序列中的位置。

更形式化地:设当前共有 \(m\) 条纸条,长度依次为 \(a_1,a_2,\dots,a_m\)。若 Lana 让他把第 \(x\) 条剪在 \(l\) 厘米处,则新序列变为:\(a_1,a_2,\dots,a_{x-1},\,l,\,a_x-l,\,a_{x+1},\dots,a_m\)。

完成所有切割后,他们想验证过程是否正确,其中一种方式是统计最终序列中有多少种**不同的纸条长度**。请你计算这个数量。

输入格式

第一行包含两个自然数 \(n,k\)(\(2 \le n \le 500\),\(1 \le k < n\)),表示原始纸条长度与指令条数。

接下来 \(k\) 行每行包含两个自然数 \(x_i,l_i\)(\(1 \le x_i \le i\),且 \(1 \le l_i \le L-1\),其中 \(L\) 为当时第 \(x_i\) 条纸条的长度),表示把当时从左到右数第 \(x_i\) 条纸条在 \(l_i\) 厘米处剪开。

输出格式

输出一行一个整数,表示完成所有切割后,最终剩下的纸条有多少种不同的长度。

输入输出样例 #1

输入 #1

5 1
1 2

输出 #1

2

输入输出样例 #2

输入 #2

6 2
1 4
1 2

输出 #2

1

输入输出样例 #3

输入 #3

10 3
1 2
2 3
3 2

输出 #3

2

说明/提示

【样例解释】

样例 #1 解释:\([5] \to [2,3]\)。

样例 #2 解释:\([6] \to [4,2] \to [2,2,2]\)。

样例 #3 解释:\([10] \to [2,8] \to [2,3,5] \to [2,3,2,3]\)。

【子任务】

子任务 分值 限制
\(1\) \(9\) \(k \le 3\)
\(2\) \(6\) 对所有 \(i\),\(l_i = 1\)
\(3\) \(13\) 对所有 \(i\),\(x_i = i\)
\(4\) \(22\) 无额外限制

信息

ID
1132
难度
(无)
分类
(无)
标签
(无)
递交数
0
已通过
0
通过率
?
被复制
2
上传者