您的位置:首页 > 其它

627A.XOR Equation

2016-03-12 20:32 232 查看
A. XOR Equation

time limit per test
2 seconds

memory limit per test
256 megabytes

input
standard input

output
standard output

Two positive integers a and b have
a sum of s and a bitwise XOR of x.
How many possible values are there for the ordered pair (a, b)?

Input

The first line of the input contains two integers s and x (2 ≤ s ≤ 1012, 0 ≤ x ≤ 1012),
the sum and bitwise xor of the pair of positive integers, respectively.

Output

Print a single integer, the number of solutions to the given conditions. If no solutions exist, print 0.

Examples

input
9 5


output
4


input
3 3


output
2


input
5 2


output
0


Note

In the first sample, we have the following solutions: (2, 7), (3, 6), (6, 3), (7, 2).

In the second sample, the only solutions are (1, 2) and (2, 1).
先贴我未通过的程序

[python] view
plain copy







#!/usr/bin/python

#-*-coding:utf-8 -*-

s,x=map(int,raw_input().split(' '))

count=0
if s>x or s<3:

if s%2==0:

n=s/2+1

else:

n=(s+1)/2
for i in range(1,n):

a=i

b=s-i

if a^b==x:

count=count+2
if a==b:

count=count-1

elif s==x:

count=s-1

elif x>s:

count=0
print count

Runtime error

[python] view
plain copy







def solve(s, x):

d = (s - x)

if x << 1 & d or d%2 or d<0: return 0
return 2 ** (bin(x).count('1')) - (0 if d else 2)

s, x = map(int, raw_input().split(' '))

print(solve(s, x))

当x左移1位与d==1或者d%2==1或s<x时,直接返回0否则返回2**(bin(x).count('1'))-(0 if d else 2)
数学问题吧
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: