#2685. 区间

区间

题目描述

每一个机房中总有一个红太阳。有一天,AmberFrame\red{AmberFrame }来到机房,发现桌上有不知道哪个蒟蒻放上的问题: 有一个 n\red{n }个数的序列,一开始所有的数都是 0\red{0,}每次可以将一个区间 [l,r](l\red{[l, r](l ≤} r)\red{r) }内的数 +1\red{+1,}求到达最 终状态的最少操作次数。 AmberFrame\red{AmberFrame }非常强,自然不会把时间花在这种水题上。因此他就把任务交给了你,如果不会做的话,他 可能就会觉得你就是那个放问题的蒟蒻了而把你批判一番了。

输入格式

第一行包含一个正整数 n\red{n,}表示序列的长度。

第二行包含 n\red{n }个非负整数 a1,a2,...,an\red{a1, a2, ..., an,}表示最终的状态。

输出格式

输出的第一行是一个正整数 m\red{m,}表示最少的操作次数。

接下来 m\red{m }行每行两个正整数 li,ri\red{li , ri,}表示一次操作。

你需要保证 1\red{1 ≤} li\red{li ≤} ri\red{ri ≤} n\red{n}。 保证最少次数 m\red{m ≤} 105\red{10^5,}输出可以以任意顺序输出。

样例

输入样例

6
2 3 3 3 3 3

输出样例

3
1 6
1 6
2 6

提示

数据范围:

子任务编号 子任务分值 n\red{n} m\red{m}
1\red{1} 10\red{10} <=4\red{<=4} <=10\red{<=10}
2\red{2} 20\red{20} <=105\red{<=10^5} <=20\red{<=20}
3\red{3} 30\red{30} <=2000\red{<=2000}
4\red{4} 40\red{40} <=105\red{<=10^5}