2개의 댓글이 있습니다.
-
-
wookayin -
std::sort()
는 빠릅니다. O(n^2) 걸릴 정도로 허술하지 않고,qsort
보다도 효율적입니다.qsort
는 가급적 쓰지 마세요ㅠ- 10만 이상의 데이터를 읽어들일 때
scanf
와cin
의 속도차이는 꽤 납니다. 아마 I/O 때문에 시간초과가 났을것 같습니다. - 대회/문제풀이용 방법으로는
cin.sync_with_stdio(false);
를 해주면 (scanf와 혼용 사용은 불가능해지지만)cin
의 I/O 속도가 빨라집니다.
https://algospot.com/forum/read/2496/ 를 참고해보시면 좋겠네요.
8년 전 link
-
-
정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
robustFlame
###요약 : 표준 입출력 방식의 속도 차이가 큰가요?
acmicpc.net에서 이 문제를 풀다가 시간초과로 많이 틀렸네요. (쉬운 문제라 생각하고 가볍게 풀려고 했는데 계속 시간 초과가 떠서 당황했네요;;)
먼저 이 코드는 STL을 사용해서 간단하게 문제를 풀려고 했는데 시간 초과가 떴습니다;;
위 코드가 시간초과가 떠서 그럴리는 없겠지만 혹시 sort()가 퀵정렬시 pivot값 설정을 평범하게 해서 정렬시 최대 O(N^2)이 나오나 싶었습니다. 그래서 qsort() 함수를 사용해서 풀어보고자 다음과 같이 코드를 냈습니다.
위 코드 역시 시간초과가 떴습니다;; 이유를 알 수 없다가 혹시나 하는 마음에 입출력 방식을 바꿨습니다. (배열도 그냥 잡아놓고)
시간 제한 2초를 못 넘었던 게 88ms 뜨더니 가볍게 성공했습니다. -_-;;
제가 입출력 방식으로 시간 초과가 뜬 적이 없던 터라 이게 이렇게 큰 차이인 줄 몰랐는데 이게 그렇게 차이가 큰가요?
8년 전