1237 : 一道好题

时间限制Time Limit 1 Sec 内存限制Memory Limit 512 MB 提交次数Submitted 1331 Times 通过次数Solved 351 Times 特判评测Special Judge

题目描述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

出题Author

THU