Pagini recente » Cod sursa (job #1928670) | Cod sursa (job #1401767) | Cod sursa (job #1700635) | Cod sursa (job #1025547) | Cod sursa (job #2079624)
#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;
}