1. 程式人生 > >牛客OI賽制測試賽3毒瘤XOR

牛客OI賽制測試賽3毒瘤XOR

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1e5 + 5;
const int INF = 0x3f3f3f3f;
const int mod = 1e9 + 7;

int a[N],sum[N][32];
int n, q;

int main()
{
    scanf("%d",&n);

    for(int i = 1;i <= n;i ++)
        scanf("%d",&a[i]);

    for(int i = 1;i <= n;i ++){
        for(int j = 0;j < 31;j ++){

            sum[i][j] = sum[i-1][j] + ((a[i]>>j)&1);
        }
    }

    scanf("%d",&q);
    int l, r;
    while(q --){
        scanf("%d%d",&l,&r);
        int ans = 0;

        for(int i = 0;i < 31;i ++){
            if(2 * (sum[r][i] - sum[l-1][i]) < r - l + 1){
                ans |= 1<<i;
            }
        }
        cout << ans << '\n';
    }
    return 0;
}