我发了这篇帖子,说明我的脑子和题面中的一个有坑(
先贴代码
#include<cstdio>
#include<algorithm>
using namespace std;
int i,n,x,a,b,cnt,sum,k;
int s[300000],extra[300000];
double ans;
int main()
{
cnt=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
printf("%d ",cnt);
scanf("%d",&b);
if(b==1)
{
scanf("%d %d",&a,&x);
a=min(a,cnt);
extra[a]+=x;
sum+=a*x;
if(cnt==0)
{
ans=0;
}
else
{
ans=1.0*sum/cnt;
}
printf("%.6llf\n",ans);
continue;
}
if(b==2)
{
scanf("%d",&k);
s[++cnt]=k;
sum+=k;
ans=1.0*sum/cnt;
printf("%.6llf\n",ans);
continue;
}
if(cnt>=2)
{
sum=sum-s[cnt]-extra[cnt];
cnt--;
extra[cnt]+=extra[cnt+1];
extra[cnt+1]=0;
}
ans=1.0*sum/cnt;
printf("%.6llf\n",ans);
}
}
第一个点就WA "expected:0.5000000,found:1.0000000"