AT_pakencamp_2024_day3_1_k 門松
题目描述
给定 $(1,2,\ldots,N)$ 的一个排列 $P=(P_1,P_2,\ldots,P_N)$ 以及一个由 $0$ 和 $1$ 组成的长度为 $N-1$ 的数列 $C$。
这里,给定的排列 $P$ 保证满足以下条件:
- 对于每个整数 $i\ (1 \le i \le N-1)$,当 $i$ 为奇数时,有 $P_i < P_{i+1}$,当 $i$ 为偶数时,有 $P_i > P_{i+1}$。
你有一个初始全为 $-1$ 的长度为 $N-1$ 的数列 $b$。你可以以下述两种操作,在任意顺序下任意次(总次数不超过 $300000$ 次)进行:
- 类型 1 :选择一个整数 $i\ (1 \le i \le N-1)$,交换 $P_i$ 和 $P_{i+1}$。
- 类型 2 :选择一个整数 $i\ (1 \le i \le N-1)$,若 $P_i < P_{i+1}$,则令 $b_i=0$,若 $P_i > P_{i+1}$,则令 $b_i=1$。
请判断能否通过上述操作使得 $b=C$;若可以,请给出一种操作方案。
输入格式
输入通过标准输入给出,格式如下:
$N\ P_1\ P_2\ \ldots\ P_N\ C_1\ C_2\ \ldots\ C_{N-1}$
输出格式
如果不能使 $b=C$,请输出一行 `-1`。
如果可以,请设操作次数为 $M$,按照以下格式输出:
$M\ T_1\ I_1\ T_2\ I_2\ \ldots\ T_M\ I_M$
其中,$T_k$ 表示第 $k$ 次操作的类型($1$ 或 $2$),$I_k$ 表示第 $k$ 次操作选择的 $i$ 值。
说明/提示
### 数据范围
- $2 \leq N \leq 2 \times 10^{5}$
- $P$ 是 $1,2,\ldots,N$ 的一个排列
- 对于每个整数 $i\ (1 \le i \le N-1)$,$i$ 为奇数时 $P_i < P_{i+1}$,$i$ 为偶数时 $P_i > P_{i+1}$
- $C_i \in \lbrace 0,1 \rbrace\ (1 \le i \le N-1)$
- 所有输入均为整数。
由 ChatGPT 5 翻译