두 수의 합


답안 제출

Points: 9
시간 제한: 2.0s
메모리 제한: 256M

문제 유형
허용된 언어
C, C++, Python

n개의 양의 정수로 이루어진 배열이 주어집니다. 여러분이 해결해야 할 과제는 배열 안에서 합이 정확히 x가 되는 서로 다른 위치(인덱스)의 두 원소를 찾는 것입니다.

입력

첫째 줄에 배열의 크기 n과 목표 합 x가 공백을 사이에 두고 주어집니다. 둘째 줄에 n개의 정수 a1, a2, ..., an이 공백으로 구분되어 주어집니다.

출력

합이 x가 되는 두 원소의 위치(1부터 시작하는 인덱스)를 공백으로 구분하여 출력합니다. 하나의 쌍을 출력할 때는 두 인덱스 중 작은 인덱스를 먼저 출력합니다.

만약 합이 x가 되는 정답 쌍이 여러 개라면, 아래의 우선순위에 따라 단 하나의 쌍만 출력합니다.

  1. 첫 번째로 출력되는 인덱스가 가장 작은 쌍을 선택합니다.
  2. 만약 첫 번째 인덱스마저 같다면, 두 번째로 출력되는 인덱스가 가장 작은 쌍을 선택합니다.

합이 x가 되는 쌍이 존재하지 않는다면 IMPOSSIBLE을 출력합니다.

제약 조건

  • 1 ≤ n ≤ 200,000
  • 1 ≤ x ≤ 1,000,000,000
  • 1 ≤ ai ≤ 1,000,000,000

예제 입력

4 8
2 7 5 1

예제 출력

2 4

코멘트

현재 작성된 코멘트가 없습니다.