A. 一道恶心的签到题

题目传送门

这题是有点恶心,思路:(x&y)+(x⊗y)=x∣y, 证明:

  • 都为1,则按位与的结果为1,而异或的结果为0,成立
  • 都为0,则按位与的结果为0,而异或结果为1,成立
  • 一个为1一个为0,则按位与的结果为0,而异或的结果为1,成立
  • 一个为0一个为1,则按位与的结果为0,而异或的结果为1,成立

于是我们就可以得到简单的代码了

AC code

#include <iostream>
using namespace std;

long long a[1000005];

int main() {
    long long n, ans = 0;
	cin >> n;
    for(int i = 1; i <= n; i++) {
    	cin >> a[i];
		ans |= a[i];
	}
    cout << ans << endl;
    return 0;
}