思路:分类讨论,首先注意到操作1并不会改变x, y的值,所以说我们要使得x, y的值改变,得看操作2。因此,令操作2中的,得到
,那当且仅当
为0的时候成立。
由于我们操作1可以进行x, y的交换,所以说我们只需要考虑怎么得到0即可,有三种情况:1.原本里面就有0,那就不管,具体是x还是y,这个讨论一下即可;2.x == y,此时通过得到0,但此时x都和y相等了,那结果其实直接为0;3.x和y互为相反数,此时通过
得到0,模拟一下可以发现,这种情况的操作数为3。最后,其他情况都不满足,输出-1即可
代码:
import sys
input = lambda: sys.stdin.readline().strip()
import math
inf = 10 ** 18
def I():
return input()
def II():
return int(input())
def MII():
return map(int, input().split())
def GMI():
return map(lambda x: int(x) - 1, input().split())
def LI():
return input().split()
def LII():
return list(map(int, input().split()))
def LFI():
return list(map(float, input().split()))
fmax = lambda x, y: x if x > y else y
fmin = lambda x, y: x if x < y else y
isqrt = lambda x: int(math.sqrt(x))
'''
'''
def solve():
x, y = MII()
if x == y:
print(0)
return
if y == 0:
print(1)
return
if x == 0:
print(2)
return
if x == -y or -x == y:
print(3)
return
print(-1)
t = 1
# t = II()
for _ in range(t):
solve()

京公网安备 11010502036488号