Pagini recente » Cod sursa (job #1213896) | Cod sursa (job #788229) | Cod sursa (job #2197261) | Cod sursa (job #1885406) | Cod sursa (job #1148924)
#include <fstream>
using namespace std;
ifstream fin ("oypara.in");
ofstream fout ("oypara.out");
struct punct {
int x;
int y;
}s[100010],j[100010],pct;
int arie (punct i, punct j, punct k) {
double ariec = (j.x-i.x)*(k.y-i.y)-(k.x-i.x)*(j.y-i.y);
if (ariec<0.0001)
return 1;
else
return 0;
}
int cmp (punct a, punct b) {
return arie(pct,a,b);
}
int main () {
fin>>n;
for (i=1;i<=n;i++) {
fin>>x>>y1>>y2;
j[i].x=s[i].x=x;
j[i].y=y1;
s[i].y=y2;
if (x<minimj) {
minimj=x;
iminj=i;
}else
if (x==minimj&& y1<v[iminj].y)
iminj=i;
if (x<minims) {
minims=x;
imins=i;
}else
if (x==minims&& y2<v[imins].y)
imins=i;
}
aux1=j[1].x;aux2=j[1].y;
j[1].x=j[iminj].x;j[1].y=j[iminj].y;
j[iminj].x=aux1;j[iminj].y=aux2;
pct=j[1];
sort (j+2,j+n+1,cmp);
i1[1]=n;
i1[2]=n-1;
p=2;
for (i=n-2;i>=1;i--) {
while( arie (j[i1[p-1]],j[i1[p]],j[i]) && p>=1 )
p--;
i1[++p]=i;
}
aux1=s[1].x; aux2=s[1].y;
s[1].x=s[iminj].x; s[1].y=j[iminj].y;
s[iminj].x=aux1; s[iminj].y=aux2;
pct=s[1];
sort (s+2,s+n+1,cmp);
i2[1]=n;
i2[2]=n-1;
p=2;
for (i=n-2;i>=1;i--) {
while( arie (s[i2[p-1]],s[i2[p]],j[i]) && p>=1 )
p--;
i1[++p]=i;
}
for (i=1;i<=n;i++) {
return 0;
}