Pagini recente » Cod sursa (job #2293364) | Cod sursa (job #397168) | Cod sursa (job #1127595) | Cod sursa (job #3137262) | Cod sursa (job #1721071)
#include<bits/stdc++.h>
#define x first
#define y second
#define N 240050
#define p pair<double, double>
using namespace std;
ifstream f("infasuratoare.in");
ofstream g("infasuratoare.out");
p v[N], h[N];
int m, j;
bool s(p a, p b, p c)
{
return (a.x - c.x)*(b.y - c.y) - (a.y - c.y)*(b.x - c.x) < 0;
}
int main ()
{
f >> m;
for (int i = 0; i < m; i++) f>>v[i].x>>v[i].y;
sort(v, v + m); reverse_copy(v, v + m - 1, v + m);
for (int i = 0; i < m*2 - 1; h[j++] = v[i++])
while (j > 1 && s(h[j-2], h[j-1], v[i])) --j;
g<<--j;
for (int i=0; i<j; ++i) g<<fixed<<setprecision(9)<<'\n'<<h[i].x<<" "<<h[i].y;
return 0;
}