package javab2019;
import java.util.Scanner;
public class 分考场 {//思想:将每个人依次放入考场中进行循环遍历
static int n;
static int v[];
static int q;
static boolean bo[];
static double max;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
v = new int[n+1];
bo = new boolean[n+1];
for(int i = 1;i<=n;i++)
v[i] = sc.nextInt();
q = sc.nextInt();
for(int i = 0;i<q;i++){
int fl = sc.nextInt();
if(fl==1){
f1(sc.nextInt(),sc.nextInt());
}
else{
f2(sc.nextInt(), sc.nextInt(), sc.nextInt());
}
}
}
static void f1(int p,int x){
v[p] = x;
}
static void f2(int l,int r,int k){
int co[][] = new int[k+1][k+1];
max = 0;
for(int i = 1;i<co.length;i++)
dfs(l, r, i, co);//分别将l号同学放入i号考场中
System.out.println(max);
}
//l代表开始点,r代表结束点。di代表将要放进哪个考场,co[i][0]代表i号考场总分数,co[i][1]代表i号考场的人数
static void dfs(int l,int r,int di,int co[][]){
if(l==r+1){
// print(co);
double t = conculate(co);
if(t>max)
max = t;
return ;
}
co[di][0]+=v[l];
co[di][1]++;
for(int i = 1;i<co.length;i++)
dfs(l+1, r, i,co);
co[di][0]-=v[l];//回溯
co[di][1]--;//回溯
}
static double conculate(int co[][]){//计算平均分的平均分
double sum = 0;
for(int i = 1;i<co.length;i++)
if(co[i][0]!=0)
sum+=co[i][0]*1.0/co[i][1];
return sum/(co.length-1);
}
static void print(int co[][]){//用于测试分考场的情况
for(int i = 1;i<co.length;i++)
System.out.print(co[i][0]+" "+co[i][1]+" ");
System.out.println();
}
}