#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<map>
#include<vector>
#include<deque>
using namespace std;
int lazy[1000000]={0};
int ext[1000000]={0};
int findLast(int n,int end){
int last=ext[n];
for(int i=n;i<=end;i++){
last+=lazy[i];
}
return last;
}
int main(){
int n;
int t,a,k,x;
int longest=1;
int numCount=1;
double sum=0,last=0;
double avg;
cin>>n;
while(n--){
cin>>t;
if(t==1){
cin>>a>>x;
longest=max(longest,a);
if(a==numCount)last+=x;
lazy[a]+=x;
//cout<<lazy[a]<<" lazy updated\n";
sum+=(x*a);
avg=(sum*1.0)/(numCount);
}else if(t==2){
cin>>k;
last=k;
sum+=k;
numCount++;
ext[numCount]+=k;
//cout<<ext[numCount]<<" ext updated\n";
//cout<<sum<<" "<<numCount<<endl;
avg=(sum*1.0)/numCount;
}else if(t==3){
sum-=last;
//cout<<"lazy is : "<<lazy[(int)numCount]<<endl;
if(ext[numCount]){
ext[numCount]=0;
}
numCount--;
//cout<<numCount<<" "<<longest<<endl;
last=findLast(numCount,longest);
// cout<<"last: "<<last<<endl;
avg=(sum*1.0)/numCount;
}
printf("%0.6lF\n",avg);
}
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPGNzdGRpbz4KI2luY2x1ZGU8Y3N0ZGxpYj4KI2luY2x1ZGU8Y21hdGg+CiNpbmNsdWRlPGNzdHJpbmc+CiNpbmNsdWRlPGFsZ29yaXRobT4KI2luY2x1ZGU8bWFwPgojaW5jbHVkZTx2ZWN0b3I+CiNpbmNsdWRlPGRlcXVlPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwppbnQgbGF6eVsxMDAwMDAwXT17MH07CmludCAgZXh0WzEwMDAwMDBdPXswfTsKaW50IGZpbmRMYXN0KGludCBuLGludCBlbmQpewogIGludCBsYXN0PWV4dFtuXTsKICBmb3IoaW50IGk9bjtpPD1lbmQ7aSsrKXsKICAgIGxhc3QrPWxhenlbaV07CiAgfQogIHJldHVybiBsYXN0Owp9CmludCBtYWluKCl7CiAgaW50IG47CiAgaW50IHQsYSxrLHg7CiAgaW50IGxvbmdlc3Q9MTsKICBpbnQgbnVtQ291bnQ9MTsKICBkb3VibGUgc3VtPTAsbGFzdD0wOwogIGRvdWJsZSBhdmc7CiAgY2luPj5uOwogIHdoaWxlKG4tLSl7CiAgICBjaW4+PnQ7CiAgICBpZih0PT0xKXsKICAgICAgY2luPj5hPj54OwogICAgICBsb25nZXN0PW1heChsb25nZXN0LGEpOwogICAgICBpZihhPT1udW1Db3VudClsYXN0Kz14OwogICAgICBsYXp5W2FdKz14OwogICAgICAvL2NvdXQ8PGxhenlbYV08PCIgbGF6eSB1cGRhdGVkXG4iOwogICAgICBzdW0rPSh4KmEpOwogICAgICBhdmc9KHN1bSoxLjApLyhudW1Db3VudCk7CiAgICB9ZWxzZSBpZih0PT0yKXsKICAgICAgY2luPj5rOwogICAgICBsYXN0PWs7CiAgICAgIHN1bSs9azsKICAgICAgbnVtQ291bnQrKzsKICAgICAgZXh0W251bUNvdW50XSs9azsKICAgICAgLy9jb3V0PDxleHRbbnVtQ291bnRdPDwiIGV4dCB1cGRhdGVkXG4iOwogICAgICAvL2NvdXQ8PHN1bTw8IiAiPDxudW1Db3VudDw8ZW5kbDsKICAgICAgYXZnPShzdW0qMS4wKS9udW1Db3VudDsKICAgIH1lbHNlIGlmKHQ9PTMpewogICAgICBzdW0tPWxhc3Q7CiAgICAgIC8vY291dDw8ImxhenkgaXMgOiAiPDxsYXp5WyhpbnQpbnVtQ291bnRdPDxlbmRsOwogICAgICBpZihleHRbbnVtQ291bnRdKXsKICAgICAgICBleHRbbnVtQ291bnRdPTA7CiAgICAgIH0KICAgICAgbnVtQ291bnQtLTsKICAgICAgLy9jb3V0PDxudW1Db3VudDw8IiAgIjw8bG9uZ2VzdDw8ZW5kbDsKICAgICAgbGFzdD1maW5kTGFzdChudW1Db3VudCxsb25nZXN0KTsKICAgICAvLyBjb3V0PDwibGFzdDogIjw8bGFzdDw8ZW5kbDsKICAgICAgYXZnPShzdW0qMS4wKS9udW1Db3VudDsKICAgIH0KICAgIHByaW50ZigiJTAuNmxGXG4iLGF2Zyk7CiAgfQogIHJldHVybiAwOwp9