Pagini recente » Cod sursa (job #1038450) | Cod sursa (job #2873816) | Cod sursa (job #2520227) | Cod sursa (job #1721462) | Cod sursa (job #600597)
Cod sursa(job #600597)
#include<stdio.h>
#include<algorithm>
#define N 120001
using namespace std;
struct punct {
double x,y;
};
int n,nr;
punct x[N],y[N];
bool ver[N];
bool cmp(punct a,punct b) {
return a.x<b.x;
}
int main() {
int i,nrmax,ve;
punct smax;
freopen("infasuratoare.in","r",stdin);
freopen("infasuratoare.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;++i)
scanf("%lf%lf",&x[i].x,&x[i].y);
sort(&x[1],&x[n+1],cmp);
printf("%.6lf %.6lf\n",x[1].x,x[1].y);
y[++nr]=x[0];
while(1) {
ve=0;
for(i=1;i<=n;++i) if(!ver[i]) {
if(nr==1 && i==1)
continue;
if(ve==0 || (y[nr].y - x[i].y) * (y[nr].x - smax.x) > (y[nr].y - smax.y) * (y[nr].x - x[i].x)) {
ve=1;
smax=x[i]; nrmax=i;
}
}
if(nrmax==1)
break;
y[++nr]=smax;
ver[nrmax]=1;
printf("%.6lf %.6lf\n",smax.x,smax.y);
}
return 0;
}