#include #include #include #include #include #include #include #define eps 1e-8 using namespace std; struct Point { double x,y; Point(){} Point(double x0,double y0):x(x0),y(y0){} void Input() { scanf("%lf%lf",&x,&y); } }; struct Line { Point a,b; double inter,k; Line(){} Line(Point a0,Point b0):a(a0),b(b0){} }; double Xmult(Point o,Point a,Point b) { return (a.x-o.x)*(b.y-o.y)-(b.x-o.x)*(a.y-o.y); } int Sig(double a) { return a<-eps?-1:a>eps; } int cmp(Line l1,Line l2) { if(!Sig(l1.k-l2.k) && !Sig(l1.inter-l2.inter) && !Sig(l1.a.x-l2.a.x)) return l1.b.x v) { int n=v.size(); for(int i=0;i v; vector v1; while(scanf("%d",&n) && n) { v.clear(); v1.clear(); for(int i=0;ib.x) swap(a,b); if(a.x==b.x) v1.push_back(Line(a,b)); else v.push_back(Line(a,b)); } int ans=0; ans=Count(v); for(int i=0;iv1[i].b.y) swap(v1[i].a,v1[i].b); } sort(v1.begin(),v1.end(),cmp1); for(int i=1;i