#include<bits/stdc++.h>
#define maxn 105 
using namespace std;

int t,n,a[maxn],b[maxn],dp[2][105][20005],sum;


signed main()
{
	cin>>n;
	for(int i=1;i<=n;i++) cin>>a[i]>>b[i],a[i]=a[i]*2,b[i]=b[i]*2,sum+=a[i];
	int now=1,pre=0;
	memset(dp,-1,sizeof(dp));
	dp[pre][0][0]=0;
	for(int i=1;i<=n;i++)
	{
		for(int j=0;j<=i;j++)		//µ±Ç°Ñ¡ÁË¶àÉÙ 
		{
			for(int k=0;k<=sum;k++) 
			{
				if(j!=0 && k>=a[i] && dp[pre][j-1][k-a[i]]!=-1)
				dp[now][j][k]=max(dp[now][j][k],dp[pre][j-1][k-a[i]]+b[i]);
				if(dp[pre][j][k]!=-1) dp[now][j][k]=max(dp[now][j][k],dp[pre][j][k]+b[i]/2);
			}
		}
		swap(now,pre);
		memset(dp[now],-1,sizeof(dp[now]));
	}
	for(int i=1;i<=n;i++)
	{
		int ans=0;double tmp;
		for(int k=1;k<=sum;k++)
		{
			ans=max(ans,min(k,dp[pre][i][k]));
//			if(dp[pre][i][k]==17) cout<<i<<' '<<k<<' '<<dp[pre][i][k]<<endl;
		}
		tmp=1.0*ans/2;
		printf("%.10lf ",tmp);
	}
	
	
	
	
}


