{"raw_statement":[{"iden":"statement","content":"给定长度为 $N$ 的序列 $a$ 满足每个数都小于 $2^K$。你需要执行恰好 $P$ 次操作，每次操作是把其中一个数的某一个二进制位反转。最终你需要使得 \n\n$$\\sum_i\\sum_j a_i\\oplus a_j(i<j)$$\n\n最大，其中 $\\oplus$ 为按位异或运算。"},{"iden":"input","content":"第一行包含整数 $N、K、P$，保证 $1≤N≤10^5,1≤K≤30,1≤P≤N\\times K$。\n\n下一行包含 $N$ 个整数，即序列 $a$。对于所有 $1≤i≤N$，保证 $0≤a_i<2^K$。"},{"iden":"output","content":"$P$ 行，每行包含两个整数 $i$ 和 $j$，满足 $1≤i≤N, 0≤j<K$，表示数字 $a_i$ 的第 $j$ 位反转。即 $a_i\\leftarrow a_i \\oplus 2^j$。\n\n**你可以多次反转同一个位。如果有多个使总和最大化的解输出任意一个即可。**"}],"translated_statement":null,"sample_group":[["2 5 1\n0 31","1 0"],["4 2 2\n0 0 2 2","4 0\n3 0"],["5 6 4\n63 15 0 10 5\n","5 5\n4 5\n4 4\n5 4"]],"show_order":[],"formal_statement":null,"simple_statement":null,"has_page_source":false}