1166번 - 선물
똑같은 소스인데 컴파일러를 다르게 했더니 결과가 180도 달라요.
C로 제출하면 TLE뜨고
C++로 제출하면 AC떠요 ㅋㅋㅋㅋㅋ
(추가로 long double을 쓰면 C로 제출해도 AC 뜹니다.)
왜 이런걸까요... 컴파일러가 다르면 충분히 가능할 상황이긴 한데 내부에서(?) 무슨 일이 벌어지는지 모르겠네요.
while(ri-le > 1e-10) 보다는 for (int k=0; k<10000; k++)를 사용해보세요. 경우에 따라서는 ri-le가 1e-10보다 항상 클 수도 있기 때문이죠.
while(ri-le > 1e-10)
for (int k=0; k<10000; k++)
(le+ri)/2 로 계속 범위를 좁혀나가는데 그런 상황이 발생할 수 있나요? 선뜻 이해되지는 않네요.
댓글을 작성하려면 로그인해야 합니다.
ZZangZZang 9년 전
똑같은 소스인데 컴파일러를 다르게 했더니 결과가 180도 달라요.
C로 제출하면 TLE뜨고
C++로 제출하면 AC떠요 ㅋㅋㅋㅋㅋ
(추가로 long double을 쓰면 C로 제출해도 AC 뜹니다.)
왜 이런걸까요... 컴파일러가 다르면 충분히 가능할 상황이긴 한데 내부에서(?) 무슨 일이 벌어지는지 모르겠네요.