void add_point_to_vertexs(set<Point> &vertexs, Point px)
{
  for (p1 : vertexs)
    for (p2 : vertexs)
      if (((p2.x - p1.x) * (px.y - p1.y) - (p2.y - p1.y) * (px.x - p1.x)) == 0 &&
          ((p2.x - p1.x) * (px.x - p1.x) + (p2.y - p1.y) * (px.y - p1.y)) > 0 &&
          ((p2.x - p1.x - px.x) * (px.x - p1.x) + (p2.y - p1.y - px.y) * (px.y - p1.y)) <= 0)
        vertexs.erase(p2); // p2 lies on line(p1, px)

  vertexs.push(px);
}
