swo98   2년 전

outofbounds 컴파일에러가 납니다.

ide에서는 segmentation fault뜨길래 a[]랑 temp[]를 전역선언 해줬더니 ide에서 에러는 안나지만

제출결과는 틀렸습니다 라고 나오네요

뭐를 고쳐야 하는지 감이안옵니다...

ckdgus2482   2년 전

우선 a는 길이에 0이 하나 더 들어간것 같고요

temp는 스택에 할당하기에 너무 큽니다. int타입 200만개정도면 15MB 이상인데 일반적으로 컴파일러가 허용하는 스택 크기를 넘습니다.

temp를 전역변수로 하시거나, set, unordered_set, 또는 배열 정렬 후 이분탐색 등을 통해 푸셔야합니다.

그리고 또 간과하신 부분은 idx가 음수가 될 수 있다는 것입니다. x는 200만 이하의 자연수고 a[i]는 100만 이하의 자연수이므로 1 - 100만 <= idx <= 200만 - 1입니다.

댓글을 작성하려면 로그인해야 합니다.