#include<stdio.h>#include<stdlib.h>#define N 100000#define M 100000int a[N];//第 i 个数 ai表示第 i个区域的初始波动值char output[N];
intlrmax(int a[], int l, int r){//找到区间l-r内 波动值大的前两个按位与,此时结果最大,这两个区域不一定连续int max = -1;
for (int i = l; i <= r; i++) {
for (int j = i; j <= r; j++) {
if (i == j) {
continue;
}
int result = a[i] & a[j];
if (max < result) {
max = result;
}
}
}
printf("结果为:%d", max);
printf("\n");
return0;
}
intmain(){
int n, m;
int opt, l, r, v;
scanf("%d %d", &n, &m);
for (int i = 1; i <= n; i++) {//初始波动值scanf("%d", &a[i]);
}
for (int i = 1; i <= m; i++) {
scanf("%d %d %d", &opt, &l, &r);
if (opt == 1) {
scanf("%d", &v);
for (int i = l; i <= r; i++) {//区域波动值增加了v
a[i] += v;
//printf("**%d ", a[i]);
}
//printf("\n");
}
else {
if (l == r) {
printf("结果为:-1");
printf("\n");
continue;
}
lrmax(a, l, r);
}
}
return0;
}