#P14651. [IATI2016]Biathlon

[IATI2016]Biathlon

题目描述

Piggy 决定组织一场冬季两项比赛,参赛者需要参加两个项目。她邀请了 NN 名选手,每名选手具有如下特征:

  • 每名选手在两个项目中的速度分别为 V1V_1V2V_2
  • 选手在各自项目中的速度始终保持不变。
  • 选手在第一个项目中用时 t1t_1 所走过的距离为 s1=V1t1s_1 = V_1 t_1;在第二个项目中用时 t2t_2 所走过的距离为 s2=V2t2s_2 = V_2 t_2
  • 若某名选手两个项目总用时在所有选手中唯一最小(即严格小于其他所有选手),则该选手获胜。

作为组织者,Piggy 可以任意选择两个项目的距离 S1S_1S2S_2(非负实数)。她现在想知道,哪些选手是可能的获胜者,也就是说,是否存在某组 S1S_1S2S_2 使得该选手获胜。

请编写程序 biathlon,求出哪些选手有可能获胜。

输入格式

第一行包含一个整数 NN

接下来 NN 行,每行包含两个正整数 V1V_1V2V_2,表示第 ii 名选手(i=0,1,,N1i = 0, 1, \ldots, N - 1)在两个项目中的速度。

输出格式

输出一行,按升序输出所有可能获胜的选手编号,编号之间用空格隔开。选手编号从 00 开始。

如果没有任何选手可能获胜,则输出单个整数 -1

数据范围

  • 子任务 1(20 分):2N1002 \le N \le 1001V1,V21001 \le V_1, V_2 \le 100
  • 子任务 2(40 分):2N50002 \le N \le 50001V1,V2100001 \le V_1, V_2 \le 10000
  • 子任务 3(40 分):2N1000002 \le N \le 1000001V1,V2100001 \le V_1, V_2 \le 10000

样例 1

输入

4
1 4
2 2
4 1
3 3

输出

0 2 3

说明

所有可能获胜的选手下标为:023

  • 下标为 0 的选手可以在例如 S1=0S_1 = 0S2=10S_2 = 10 时获胜;
  • 下标为 2 的选手可以在例如 S1=10S_1 = 10S2=0S_2 = 0 时获胜;
  • 下标为 3 的选手可以在某些距离 S1=10S_1 = 10S2=10S_2 = 10 时获胜。

下标为 1 的选手无法获胜:他总会被下标为 3 的选手击败。

样例 2

输入

3
3 3
3 3
2 2

输出

-1

说明

只有选手 01 可能取得最小总时间,但二者都不是唯一最小,因此正确输出为 -1