#P16868. [ural1626]Interfering Segment

[ural1626]Interfering Segment

题目描述

一个多边形 PP三角剖分,是把 PP 划分成若干个互不重叠的三角形,并满足:

  • 所有三角形的顶点都必须是 PP 的顶点;
  • 除了三角形自身的三个顶点外,PP 的其他顶点不能落在该三角形的边界上;
  • 所有三角形的并恰好等于 PP

如果线段 SS 与三角剖分中某个三角形的边界相交或相切,则称 SS 干扰了这个三角剖分。

给定简单多边形 PP 和一条严格位于 PP 内部的非零线段 SS,判断是否存在一个三角剖分,使得 SS 不干扰它。

由于任意简单多边形都可以三角剖分,因此若有解,你只需要输出某个合法三角剖分中那个严格包含整条线段 SS 的三角形的三个顶点编号。

输入格式

第一行一个整数 NN

3N800.3\le N\le 800.

接下来 NN 行,每行两个整数 Xi,YiX_i,Y_i,按沿多边形边界的顺序给出顶点。

保证:

  • 所有顶点两两不同;
  • 任意三个连续顶点不共线;
  • PP 是简单多边形。

最后一行四个整数:

Xs Ys Xf Yf

表示线段 SS 的两个端点。

所有坐标的绝对值均不超过 10410^4。保证 SS 长度非零,并且严格位于多边形内部。

输出格式

如果存在满足要求的三角剖分,输出三个整数,表示其中一个严格包含 SS 的三角形的三个顶点编号。顶点编号从 11 开始。

如果无解,输出:

Impossible

样例 1

3
0 0
0 3
4 3
1 2 2 2
1 2 3

样例 2

4
0 0
2 0
2 3
0 3
1 1 1 2
Impossible