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 翻译