Cod sursa(job #2079624)

Utilizator raisacmtAxenie Raisa raisacmt Data 1 decembrie 2017 17:01:38
Problema Infasuratoare convexa Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.09 kb
#include <cstdio>
#include<algorithm>
#include<math>
using namespace std;
const double eps=2.e-14;
int ll;
struct point
{
	double x,y;
};
point v[120005];
int st[120005];
double cp(point p1,point p2,point p3)
{
	return (p2.x-p1.x)*(p3.y-p2.y)-(p2.y-p1.y)*(p3.x-p2.x);
}
int ccw(point p1,point p2,point p3)
{
	double c;
	c=cp(p1,p2,p3);
	if(fabs(c)<eps)
		return 0;
	if(c>=eps)
		return 1;
	return -1;
}
double dist(point p1,point p2)
{
	return sqrt(double((p1.x-p2.x)*(p1.x-p2.x)+ (p1.y-p2.y)*(p1.y-p2.y)));
}
bool cmp (point p1,point p2)
{
	if (ccw(v[ll],p1,p2)==1)
		return 1;
		if (ccw(v[ll],p1,p2)==-1)
		return 0;
		if(dist(v[ll],p1)>dist(v[ll],p2))
			return 1;
		return 0;

}
int main()
{
   freopen("infasuratoare.in","r",stdin);
   freopen("infasuratoare.out","w",stdout);
   int n,minp;
   double miny,minx;
   scanf("%d",&n);
   for(i=1; i<=n; i++)
	 {
	 	scanf("%lf%lf",&tempx,&tempy);
	 	v[i].x=tempx;
	 	v[i].y=tempy;
	 	if(v[i].y<miny)
			minp=i,miny=v[i].y,minx=v[i].x;
		else
			if(v[i].y==miny && v[i].x<minx)
				minp

	 }
    return 0;
}