namedaho   2년 전

실행은 잘 되는 것 같습니다. 하지만 시간 초과가 나는데요

시간 초과 나는 이유 좀 알 수 있을까요?

부탁드립니다!

ho94949   2년 전

무한이 너무 작습니다


namedaho   2년 전

답변감사합니다!

무한을 10000000000로 늘려보아도 결과는 시간초과로 나옵니다..

다른 이유는 없을까요?

ho94949   2년 전

저는 정상적으로 채점이 되네요 INF를 10000000000으로 바꾼 소스코드 입니다.

주의하셔야 할 점 중 하나가 INF가 overflow를 일으키면 안됩니다. 10000000000 은 int형의 저장범위인 2147483647을 넘기 때문에 오류가 발생할 수 있으며, 이 경우에는 사실 1410065408으로 처리되어서 overflow를 일으키지 않았지만 inf는 int형의 저장범위를 넘지 않고, 가능한 모든 답보다 큰 범위에서 설정해 주시기 바랍니다.

제가 좋아하는 INF상수중의 하나는 INF를 0x3f3f3f3f (1061109567)로 잡아서 memset을 사용하기 편하며, 2배를 할 경우에 int범위를 넘지 않고 대부분의 문제에서 주어진 제한조건인 10억보다 큰 숫자입니다.

혹시 코드에 다른 부분이 있을까 채점 현황을 들어가봤는데 코드가 보이지 않아서 확인을 하기 힘드네요 ㅠ


ho94949   2년 전

overflow를 일으키지 않았다고 잘못 작성했네요, overflow된 INF가 1410065408로 설정되어서 프로그램에 문제를 발생하지 않았다고 하는 것이 맞는것 같습니다.

namedaho   2년 전

0x3f3f3f3f 배워갑니다!!

채점 정상적으로 되신다고 하셔서 제가 제출하고 있는 c++버전(?)을 바꿔봤더니 정상 채점이 되더군요.

혹시 c++, c++11, c++14 어떤거 기준으로 공부하를 하는게 좋을지 조언 부탁드립니다.

감사합니다.

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