ekdlemdjq456   3년 전

다른 풀이들과 비슷하게 세그먼트 트리를 이용해서 풀었는데 뭐가 잘못된 건지 잘 모르겠습니다....ㅜㅜ

byeongkeunahn   3년 전

이미 해결하신 것 같기는 하지만 다른 분들을 위해 남깁니다!

  • upper_bound는 오름차순으로 정렬된 배열을 가정하는데, 구현에서 y_islands 배열은 y가 내림차순으로 정렬되어 있습니다. 따라서 가장 큰 y값은 n-1로, 그보다 작은 나머지 y값은 전부 -1로 매핑이 됩니다.
    • 해결법은 upper_bound 호출 맨 뒤에 std::greater<>()를 추가하여 이 배열이 내림차순 정렬임을 알려주는 것입니다.
    • 다르게 해결하려면 y_islands가 y에 대한 오름차순으로 정렬되도록 코드의 비교함수들을 수정해도 됩니다.
  • 최대 출력은 75000 * (75000 - 1) / 2로 int 범위를 벗어납니다.
    • 해결법은 long long 사용입니다.

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