// Time 78 ms; Memory 1316K
#include#include #include #define maxn 50000 #define maxm 305 #define sqr(x) ((x)*(x)) #define eps 1e-5 using namespace std; double a[maxn],b[maxn],c[maxn]; int cas,cnt; int sig(double x) { return (x>eps)-(x<-eps); } typedef struct point { double x,y; point(double xx=0,double yy=0):x(xx),y(yy){} }vector; point pt[maxm]; vector vt[maxm]; vector operator - (point p,point q) { return vector(p.x-q.x,p.y-q.y); } double dot(vector p,vector q) { return p.x*q.x+p.y*q.y; } double cal(double t) { double tmp,res=a[0]*t*t+b[0]*t+c[0]; for(int i=1;i 0) { m1=l+(r-l)/3;m2=r-(r-l)/3; if(cal(m1)