#include <iostream>
using namespace std;
// 核心目标是X==Y,给出了对XY可以进行的两种操作选择,那么不妨进行逆向推理,X=Y之前的状态是什么?
//我们不妨拿出草稿纸写几个例子推理一番,得到以下结论:
// 1、X,Y=0 -> 一次变换得相等
// 2、X=0,Y -> 交换加变换得相等
// 3、X+Y=0 -> 变换出0,再来交换加变换得相等
// 4、其他情况并不能进入前三种情况的“斩杀线”,因为它们无论怎么进行“变换操作”,始终变不出X或者Y为0,
//因此就无法变出X=Y
int main() {
int x,y;
cin >> x >> y;
if (x == y) {
cout << 0;
}
else if (y == 0 ) {
cout << 1;
}
else if (x == 0) {
cout << 2;
}
else if (x == -y) {
cout << 3;
}
else {
cout << -1;
}
}
// 64 位输出请用 printf("%lld")

京公网安备 11010502036488号