#include<bits/stdc++.h>
#define ll long long
#define pb push_back

using namespace std;

int n;

vector<int>a,b;

void input();

int dp[103][10003];
int Total;

void solve(){

    memset(dp,-1,sizeof dp);
    dp[0][0] = 0;
    for(int i=0;i<n;i++){
        for(int k=i+1;k>0;k--){
            for(int A=a[i];A<=10000;A++){

                if(dp[k-1][A-a[i]]!=-1)dp[k][A] = max(dp[k-1][A-a[i]] + b[i], dp[k][A]);

            }

        }
    }


    for(int k=1;k<=n;k++){
        int ans  = 0;
        for(int A=1;A<=10000;A++){
            if(dp[k][A]==-1)continue;
            int cur = min(2*dp[k][A] + (Total-dp[k][A]), 2*A);
            ans = max(ans,cur);
        }
        cout<<fixed<<setprecision(10)<<ans/2.0;
        if(k!=n)cout<<" ";
    }

    cout<<"\n";

}

void Clear(){

}

int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);

    input();
    solve();
    Clear();
}

void input(){
    cin>>n;
    for(int i=0;i<n;i++){
        int u,v;
        cin>>u>>v;
        a.pb(u);
        b.pb(v);
        Total +=v;
    }
}
