0000000000   2년 전

수의 범위가 너무 커서 압축을 해 준 다음 Mo's를 썼습니다. 검색해서 나온 다른 분들 코드와도 별로 다른 것 같지 않은데 왜 틀리는지 이유 또는 반례를 알 수 있을까요?

seungwuk98   2년 전

문제점이 여러가지가 있습니다.

25번째 줄에서 unique를 써서 지웠으면, t의 길이가 달라집니다. 

그런데 이분탐색 범위는 그대로 n개입니다. 배열의 숫자가 모두 1가지라면, 탐색하는 곳이 안좋은 메모리 접근이 되겠죠


따라서 25번째 erase를 end()까지 수행하고, 이분탐색의 범위를 end()까지 진행하거나

아예 정렬만하고 erase 코드를 지워버려도 상관없습니다. (어차피, lower_bound한 수는 유일합니다.)


그리고 38번째 줄에 if(c[a[i]]==2) r--; 가 필요합니다.

0000000000   2년 전

길이가 달라진다는 걸 잊고 있었네요; 감사합니다!

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