CF598C.Nearest vectors

提高+/省选-

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given the set of vectors on the plane, each of them starting at the origin. Your task is to find a pair of vectors with the minimal non-oriented angle between them.

Non-oriented angle is non-negative value, minimal between clockwise and counterclockwise direction angles. Non-oriented angle is always between 0 and π. For example, opposite directions vectors have angle equals to π.

给你平面上的一组向量,每个向量均以原点为起点。你的任务是找出夹角(无向角)最小的一对向量。

无向角是一个非负值,定义为顺时针与逆时针两个方向所成角度中的较小者。无向角的取值范围恒为 [0,π][0, \pi]。例如,方向相反的两个向量之间的无向角等于 π\pi。

输入格式

First line of the input contains a single integer n (2 ≤ n ≤ 100 000) — the number of vectors.

The i-th of the following n lines contains two integers x__i and y__i (|x|, |y| ≤ 10 000, _x_2 + _y_2 > 0) — the coordinates of the i-th vector. Vectors are numbered from 1 to n in order of appearing in the input. It is guaranteed that no two vectors in the input share the same direction (but they still can have opposite directions).

输入的第一行包含一个整数 nn(2≤n≤100 0002 \leq n \leq 100\,000)—— 向量的个数。

接下来的 nn 行中,第 ii 行包含两个整数 xix_i 和 yiy_i(∣x∣,∣y∣≤10 000|x|, |y| \leq 10\,000,且 x2+y2>0x^2 + y^2 > 0)—— 第 ii 个向量的坐标。向量按输入顺序编号为 11 至 nn。保证输入中任意两个向量的方向均不相同(但它们仍可能互为反向)。

输出格式

Print two integer numbers a and b (a ≠ b) — a pair of indices of vectors with the minimal non-oriented angle. You can print the numbers in any order. If there are many possible answers, print any.

输出两个整数 aa 和 bb(a≠ba \neq b)—— 即夹角(无向角)最小的一对向量的下标。你可以以任意顺序输出这两个数。若存在多个可能的答案,输出任意一个即可。

输入输出样例

  • 输入#1

    4
    -1 0
    0 -1
    1 0
    1 1

    输出#1

    3 4
  • 输入#2

    6
    -1 0
    0 -1
    1 0
    1 1
    -4 -5
    -4 -6

    输出#2

    6 5

输入解题思路,AI测评打分。不知道怎么写?

首页