busyhuman   8년 전

10만이하에서 최대 350번밖에 연산을 안하는거 같은대 왜 시간초과가 뜨나요?


------       ---------


http://blog.naver.com/minni99/80007658965


77031은 350단계를 거칩니다. 77031은 10만 아래의 수 중에서 가장 긴 단계를 가집니다. 77671은 10만 아래의 수에서 가장 높은 봉우리 수인 1570824736을 갖습니다.

dotorya   8년 전

cin이 시간이 좀 많이 느려서 그렇습니다.

제 정답 소스에서 scanf를 cin으로 바꾸니 시간초과가 나네요.

이렇게 느린줄은 몰랐는데..


scanf("%d", &m); 으로 고쳐보세요!

busyhuman   8년 전

아 이게 간당간당하다는 그건가요?..

근데 다른 분들은 C++,C++11로도 통과하시던대 제가 잘못한거 같은 느낌이..

dotorya   8년 전

C++로 제출하는 사람들도 다들 scanf 써서 그래요 ㅋㅋ

무늬만 C++인 C 코드에요..

busyhuman   8년 전

저도 문법만 cpp고 절차지향ㅋㅋ

어쨋든 덕분에 문제를 맞췄습니다. 감사합니다

indioindio   8년 전

std::ios_base::sync_with_stdio(false);

를 추가하면 cin도 빠르게 사용할 수 있다고 하네요

오히려 인자로 문자열을 받을 필요가 없어서 scanf보다 조금 빠르다고 합니다.

https://www.quora.com/Is-cin-cout-slower-than-scan... 

를 참조하시면 될 것 같네요.

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