CSG-CPC
Online Judge

1237 : 一道好题

         Time Limit: 1 Sec     Memory Limit: 512 Mb     Submitted: 925     Solved: 249     SpecialJudge

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\)

Sample

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

Hint

Author

THU