编程题
### 问题描述 小飞获得了一个三元组 $(x, y, z)$,现在小飞希望通过以下操作变换 $(x, y, z)$ 得到 $(a, b, c)$。 合法操作如下: 1. 将 $x,y,z$ 的按位与赋给 $x$。 2. 将 $x,y,z$ 的按位或赋给 $y$。 3. 将 $x,y,z$ 的按位异或赋给 $z$。 4. 当 $\max(x,y,z) < k$ 时,令 $x,y,z$ 都加上 $1$。 请你输出将 $(x, y, z)$ 变换至 $(a, b, c)$ 的最少操作次数,若不能完成,则输出 $-1$。 ### 输入格式 第一行一个整数 $t$,表示测试数据组数。 接下来 $t$ 行,每行包含 $7$ 个整数,$x,y,z,a,b,c,k$。 ### 输出格式 输出 $t$ 行,每行包括一个整数,表示该组测试数据所需的最少操作次数,若不能完成,则输出 $-1$。 ### 样例输入 ```text 1 1 1 1 2 2 2 50 ``` ### 样例输出 ```text 1 ``` ### 评测数据规模 对于 $100$% 的评测数据,$1 \leq t \leq 10$, $0 \leq x,y,z,a,b,c,k \leq 100$。
查看答案
赣ICP备20007335号-2