
#include <bits/stdc++.h>
using namespace std;
const int N = 100005;
int n,m,l,r,x;
int a[N],s[N];
int b[10005],ma;
int main(){
cin >> n >> m;
for(int i = 1; i <= n; i++){
cin >> a[i];
s[i] = s[i-1] + a[i];
}
for(int x = n; x >= 1; x--){
for(int i = 1; i <= n-x+1; i++){
ma = max(s[i+x]-s[i-1],ma);
//cout << "cnmd" << ma << endl;
}
b[x] = ma;
for(int i = x; i <= n; i++){
b[x] = max(b[x],b[i]);
//cout << "tmdsb" << b[x] << endl;
}
ma = 0;
cout << "????? : " << b[5] << endl;
}
for(int i = 1; i <= m; i++){
cin >> x;
cout << b[x] << endl;
/*if(b[x]){
cout << b[x] << endl;
continue;
}
for(int i = 1; i <= n-x; i++)
ma = max(s[i+x]-s[i-1],ma);
b[x] = ma;
for(int i = 1; i <= n; i++)
b[x] = max(b[x],b[i]);
cout << b[x] << endl;
ma = 0;*/
}
return 0;
}
本人对区间求和不是很熟悉,谢谢