#include <bits/stdc++.h> using namespace std; const int N=2e5+10; int f[N]; int sz[N]; long long sum[N]; void init(int n) {     for(int i=1;i<=n;i++)     {         f[i]=i;         sz[i]=1;     } } int find(int a) {     if(f[a]==a)         return a;     return find(f[a]); } void merge(int a,int b) {     int fa = find(a);     int fb = find(b);     if(fa==fb)return;     if(fa<fb)swap(fa,fb);     sum[fa]+=sum[fb];     sz[fa]+=sz[fb];     f[fb]=fa; } int main() {     int n,m;     cin>>n>>m;     for(int i=1;i<=n;i++)         cin>>sum[i];     init(n);     while(m--)     {         int op;         cin>>op;         if(op==1)         {             int l,r;             cin>>l>>r;             for(int i=l;i<r;i++)             {                 merge(i,i+1);                 i = find(i+1)-1;             }         }         else         {             int x;             cin>>x;             x = find(x);             printf("%.10lf\n",1.0*sum[x]/sz[x]);         }     }     return 0; } 为啥我的超时了呀