//Segment TREE
#include <stdio.h>
#define ll long long
ll arr[100010];
ll seg[4*100010];
ll init(int s, int e, int node) {
if(s==e) return seg[node] = arr[s];
int m=(s+e)/2;
return seg[node]=init(s, m, node*2)+init(m+1, e, node*2+1);
}
ll sum(int s, int e, int node, int l, int r) {
if(l>e||r<s) return 0;
if(l<=s&&e<=r) return seg[node];
int m=(s+e)/2;
return sum(s, m, node*2, l ,r)+sum(m+1, e, node*2+1, l, r);
}
void update(int s, int e, int node, int idx, ll val) {
if(idx<s||idx>e) return;
seg[node]+=val;
if(s==e) return;
int m=(s+e)/2;
update(s, m, node*2, idx, val);
update(m+1, e, node*2+1, idx, val);
}
int main() {
int n, m;
scanf("%d %d", &n, &m);
for(int i=0; i<n; i++) scanf("%lld", &arr[i]);
init(0, n-1, 1);
for(int i=0; i<m; i++) {
int q;
scanf("%d", &q);
if(q==1) {
int i, j, k;
update(0, n-1, 1, l-1, r-arr[l-1]);
arr[l-1]=r;
}
else {
ll SUM=sum(0, n-1, 1, l-1, r-1);
printf("%.2lf\n", (double)SUM/(r-l+1));
}
}
}
Para incrustar este proyecto en tu sitio web, copia el siguiente código y pégalo en el HTML de tu sitio web: