CF1500A Going Home
题目描述
这是远程学习的第三个月,Nastya 已经厌倦了待在宿舍,于是她决定回到家乡。为了让她的旅途更加有趣,Nastya 的一位朋友送给了她一个整数数组 $a$。
在回家旅途开始几个小时后,Nastya 想起了这份礼物。为了打发时间,她决定检查是否存在四个不同的下标 $x, y, z, w$,使得 $a_x + a_y = a_z + a_w$。
她的火车已经到站,但她仍然没有找到答案。你能帮她解开这个谜题吗?
输入格式
第一行包含一个整数 $n$($4 \leq n \leq 200\,000$),表示数组的大小。
第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($1 \leq a_i \leq 2.5 \cdot 10^6$)。
输出格式
如果存在这样的四个下标,输出 "YES"。否则输出 "NO"。
如果存在这样的下标,输出这四个下标 $x$、$y$、$z$ 和 $w$($1 \leq x, y, z, w \leq n$)。
如果有多个答案,输出任意一个即可。
说明/提示
在第一个样例中,$a_2 + a_3 = 1 + 5 = 2 + 4 = a_1 + a_6$。注意还有其他答案,例如 2 3 4 6。
在第二个样例中,我们无法选择四个下标。答案 1 2 2 3 是错误的,因为下标必须不同,尽管 $a_1 + a_2 = 1 + 3 = 3 + 1 = a_2 + a_3$。
由 ChatGPT 4.1 翻译