1237 : 一道好题
Time Limit: 1 Sec Memory Limit: 512 MB Submitted: 1239 Solved: 335 SpecialJudgeDescription
一道好题应该有一个简洁的题面。
有一个长度为 \(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