#include<bits/stdc++.h>
using namespace std;
int N,M,cz,x,y,x2,y2,x3,y3;
double k;
int js=0;
double n[100005];
double DN[100005];
double temp=0.00,temp1=0.00;
double cz1(int x,int y,double k)
{
for(int i=x-1;i<y;++i)
{
n[i]+=k;
}
}
double cz2(int x,int y)
{
for(int i=x-1;i<y;++i)
{
temp+=n[i];
}
temp/=(y-x)+1;
return temp;
}
double cz3(int x,int y,double ping=0.00)
{
for(int i=x-1;i<y;++i)
{
ping+=n[i];
}
ping/=(y-x)+1;
for(int i=x-1;i<y;++i)
{
temp1+=pow(n[i]-ping,2);
}
temp1/=(y-x)+1;
return temp1;
}
int main()
{
cin>>N>>M;
memset(DN,0,sizeof(DN));
for(int i=0;i<N;++i)
{
cin>>n[i];
}
for(int i=1;i<=M;++i)
{
cin>>cz;
if(cz==1)
{
cin>>x>>y>>k;
cz1(x,y,k);
// for(int j=0;j<N;++j)
// {
// cout<<endl<<n[j]<<endl;
// }
}
if(cz==2)
{
cin>>x2>>y2;
DN[js]=cz2(x2,y2);
++js;
temp=0.00;
}
if(cz==3)
{
cin>>x3>>y3;
DN[js]=cz3(x3,y3);
++js;
temp=0.00;
temp1=0.00;
}
}
for(int j=0;j<js;++j)
{
printf("%.4f\n",DN[j]);
}
return 0;
}
剩下的都是超市TLE