#include <bits/stdc++.h>
using namespace std;
#define F(W) for(int i = 0; i < W; i++)
#define FF(W) for(int j = 0; j < W; j++)
#define FFF(W) for(int k = 0; k < W; k++)
#define ZERO (1e-5)
#define EPS ZERO
#define INF (1 << 30)
#define LINF (1LL << 62)
#define NINF (-(1LL << 62))
#define MP(A, B) make_pair(A, B)
#define PBC(G, A) G.push_back(A);
#define CL(A, I) (memset(A, I, sizeof(A)))
#define ADD(A, B, V) (g[A].push_back(B); g[B].push_back(A); v[A].push_back(V); v[B].push_back(V))
#define add(A, B) (g[A].push_back(B), g[B].push_back(A))
#define DEB printf("DEB!\n");
#define DEX printf("DEX!\n");
#define DRI(a) int a; scanf("%d ", &a);
#define DRII(a, b) int a, b; scanf("%d %d ", &a, &b);
#define DRIII(a, b, c) int a, b, c; scanf("%d %d %d %d ", &a, &b, &c);
#define DRIIII(a, b, c, d) int a, b, c, d; scanf("%d %d %d %d ", &a, &b, &c, &d);
#define EQ(A, B) (A+ZERO>B&&A-ZERO<B)
#define FND(P, K, N) (lower_bound(P, P+N, K)-P);
#define SW(A, B) (swap(A, B))
#define REP(i, n) for (int i = 0; i < n; i++)
#define IN(n) int n; cin >> n;
#define PB push_back
#define MX (1<<17)
typedef long long ll;
typedef unsigned long long llu;
typedef pair<int, int> pii;
typedef pair<int, int> ii;
typedef pair<int, double> pid;
typedef pair<ll, ll> pll;
typedef vector<int> vi;
int N,a[MX],b[MX];
double B,E,m,p,q,r,P,Q,R;
double ck(double T){
double r,V(LINF),W(NINF);
F(N)r=b[i]*(T-a[i]),V=min(V,r),W=max(W,r);
return W-V;
}
int main(void){
while(scanf("%d",&N),N){
F(N)scanf("%d%d",a+i,b+i),B=max(B,(double)a[i]);
E=1LL<<30;
while(!EQ(B,E)){
m=(E-B)/3;
p=B+m;
r=E-m;
P=ck(p);
R=ck(r);
if(EQ(P,R))B=p,E=r;
else if(P>R)B=p;
else E=r;
}
printf("%.3lf\n",ck(B));
B=0;
}
return 0;
}Diff to submission s936