Problem E: 异或和

Problem E: 异或和

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 57  Solved: 11
[Submit] [Status] [Web Board] [Creator:]

Description

给定n个正整数,问是否有两个数的异或和是2的整数次幂;
如果有,输出"yes",随后输出异或和最小的那组数,并使第一个数尽可能小;
如果没有,输出"no"。

Input

第一行输入一个整数n(1<=n<=1e5),
第二行输入这n个正整数,每个数不超过231

Output

如果有两个数的异或和是2的整数次幂,输出"yes",
然后在下一行输出符合条件的异或和最小的那组数,并使第一个数尽可能小,
否则输出"no"。

Sample Input

5
1 2 3 4 5

Sample Output

yes
2 3

HINT

虽然1 3也符合,但是1与3异或的结果是2,而2与3异或的结果是1,要更小。