小白的按位与
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

小白获得了一个长度为 n 的数组,求数组中的两个数,它们的按位与的值最大。对于结果,输出这两个数的下标(小的在前)。
若有多种结果,它们按位与获得的结果相同且都是最大值,则输出字典序最小的一组
按位与的运算规则:把两个十进制数转化为二进制,依次比较两个二进制数的每一位,全部为 1 则为 1,否则为 0 的规则,依次计算出一个新的二进制数

输入描述:

第一行一个整数 n(2\leq n \leq 10^6) 表示数组长度

第二行输入 n 个整数 a_1,a_2,a_3...a_n(1\leq a_i \leq 10^9),第 i 个数表示数组中的第 i 个位置的数

输出描述:

输出两个整数,表示所求的两个数的下标。
示例1

输入

复制
5
4 5 1 2 3

输出

复制
1 2

说明

对于样例,我们可以得到 4\ \&\ 5=4,这是我们可以得到的最大值,于是我们输出下标 12