10454번 - 세 네모
c++14로 하면 답이 틀렸다고 뜨고
c++11로하면 맞았다고 뜨는데 이유가 뭘까요...?
그리고 int범위를 안넘을거 같아서 long long을 안썼더니 틀렸다고 뜨는 이유는 뭘까요ㅠㅠ?
저도 int로 썼다가 WA 먹고 _int64_t 써서 억셉 받았는데요.
이분탐색부분에서 lo=0, hi=2e9 놓고 (lo+hi)>>2 를 하다보면 (lo+hi)가 signed int32 범위를 넘는 경우가 발생하더라구요.
아마 컴파일러 dependancy가 있다고 하면, 계산식의 중간결과값이 overflow가 나는 것을 컴파일러가 방어해주는게 아닌가 싶습니다~
댓글을 작성하려면 로그인해야 합니다.
ryan_park 7년 전
c++14로 하면 답이 틀렸다고 뜨고
c++11로하면 맞았다고 뜨는데 이유가 뭘까요...?
그리고 int범위를 안넘을거 같아서 long long을 안썼더니 틀렸다고 뜨는 이유는 뭘까요ㅠㅠ?