#P1237. 一道好题

    ID: 237 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>第九届中国大学生程序设计竞赛(深圳)-(CCPC2023-Shenzhen)

一道好题

Description

一道好题应该有一个简洁的题面。

有一个长度为 \(n\),初始全为 \(0\) 的序列 \(a\),另有一个长度为 \(n\) 的序列 \(b\),你希望将 \(a\) 变成 \(b\),你可以执行如下两种操作:

\(1~x\):将 \(a\) 中所有值为 \(x\) 的数 \(+1\)

\(2~x\):将 \(a\) 中下标为 \(x\) 的数 \(+1\)

你不需要最小化操作次数,但只能使用最多 \(20000\) 次操作。

Input

第一行一个正整数 \(n\)\(1\leq n\leq 1000\))。

第二行 \(n\) 个非负整数 \(b_1, \cdots, b_n\)\(0\leq b_i\leq n\))描述序列 \(b\)

Output

第一行一个整数 \(k\) 表示操作次数,你需要保证 \(0 \le k \le 20000\)

之后 \(k\) 行每行两个整数 \(1~x\)\(2~x\),表示一次操作。对于 \(1~x\) 类型的操作,你需要保证 \(0\leq x\leq n\),对于 \(2~x\) 类型的操作,你需要保证 \(1\leq x\leq n\)

4
2 4 3 1
7
1 0
2 1
2 2
2 3
2 2
1 3
2 3