#include<bits/stdc++.h>
using namespace std;
typedef long long llint;
const llint MOD = 1'000'000'007;
struct SetItem{
    int head, tail;
    double time;
    SetItem() {}
    SetItem(int h, int t, double ti) {
        head = h;
        tail = t;
        time = ti;
    }
    bool operator<(SetItem s) const{
        return time < s.time;
    }
};
int main() {
   int N;
   cin >> N;
   vector<double> s(N), v(N), head(N, -1), tail(N, -1);
   for(int i = 0; i < N; i++) {
       cin >> s[i] >> v[i];
       tail[i] = i;
       head[i] = i;
   }
   set<SetItem> set;
   for(int i = 0; i + 1 < N; i++) {
       if(v[i + 1] > v[i])
           set.insert(SetItem(i, i + 1, (s[i+1] - s[i] - 1) / (v[i + 1] - v[i])));
       else if(v[i + 1] == v[i] && s[i + 1] == s[i] + 1) {
           set.insert(SetItem(i, i + 1, 0));
       }
   }
   while(!set.empty()) {
       auto first = *set.begin();
       set.erase(first);
       cout << first.time << endl;
       if(first.tail != 0) {
           int bef_head = first.tail - 1;
           
       }
   }
}