std::sort의 시간 복잡도는 O(nlogn)입니다. 또한 cout의 경우 endl이 나올 때마다 버퍼를 비우는 등의 부하가 발생하기 때문에 이것만 "\n"으로 바꿔도 많이 빨라질 것 같습니다.
만일 이래도 시간초과가 난다면 ios::sync_with_stdio(false);를 main 시작부분에 적어보세요.
2751번 - 수 정렬하기 2
std::sort의 시간 복잡도는 O(nlogn)입니다. 또한 cout의 경우 endl이 나올 때마다 버퍼를 비우는 등의 부하가 발생하기 때문에 이것만 "\n"으로 바꿔도 많이 빨라질 것 같습니다.
만일 이래도 시간초과가 난다면 ios::sync_with_stdio(false);를 main 시작부분에 적어보세요.
ios_base::sync_with_stdio가 맞군요; 실수
시간제한을 늘린다기 보단
http://www.acmicpc.net/help/judge
이런 페이지 등에 언급을 하면 될것같네요.
cin cout 때문에 시간제한을 늘려야 하는것은, 비단 이 문제에만 적용되는 사안은 아니기 때문에 다른 문제에도 적용되어야 할 탠데,
입력이 거의 없음에도 시간초과가 발생할 수 있는 문제가 매우 많기 때문에 무리라고 봅니다..
그렇다고 입력이 많은 문제또한 많기 때문에 모든 문제를 다 찾기도 힘드니까요.
댓글을 작성하려면 로그인해야 합니다.
joonas 7년 전
안녕하세요.
단순한 정렬 문제인데, cin, cout, sort 밖에 없는 소스에서 시간초과가 나더군요.
cin을 scanf로, cout을 printf로 바꾸니 324MS로 맞긴 했지만
N의 범위가 1 <= N <= 1,000,000 이고 시간제한이 1000MS 라 당연히 될 줄 알았습니다.
O( 2n + logn ) 인데 시간초과 받아서 충격먹었습니다.
언어마다 시간을 정하기에 애매하고 힘든 걸 알면서 이런 글 남겨서 죄송합니다.
O( 2,000,006 ) 이 1000MS에서 시간초과 났다는 말을 괜히 길게 적었네요.
잘 고려해주시기 바라겠습니다 ㅎㅎ