ryan_park   7년 전

c++14로 하면 답이 틀렸다고 뜨고

c++11로하면 맞았다고 뜨는데 이유가 뭘까요...?

그리고 int범위를 안넘을거 같아서 long long을 안썼더니 틀렸다고 뜨는 이유는 뭘까요ㅠㅠ?



kalmiaa   7년 전

저도 int로 썼다가 WA 먹고 _int64_t 써서 억셉 받았는데요.

이분탐색부분에서 lo=0, hi=2e9 놓고 (lo+hi)>>2 를 하다보면 (lo+hi)가 signed int32 범위를 넘는 경우가 발생하더라구요.


아마 컴파일러 dependancy가 있다고 하면, 계산식의 중간결과값이 overflow가 나는 것을 컴파일러가 방어해주는게 아닌가 싶습니다~


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