cy1ee   18일 전

시간 초과가 계속 뜨는 경우 입출력을 C style로 scanf, printf를 사용해보시기 바랍니다.

아무리 최적화해도 시간 초과가 뜨던 문제가 해결되었습니다.

입출력이 많을 때는 C-style 입출력이 성패를 좌우할 수도 있음을 깨닫게 하는 하루였습니다.

cy1ee   18일 전

@pacto7107 저의 경우 링크해주신 방법, 즉 C++에서 std::cin, cout를 가속하는 널리 알려진 방법을 사용하였음에도 효과가 없었습니다. 해당 방법을 사용하였음에도 불구하고 시간 초과가 뜨는 분들은 scanf, printf 사용을 고려해보시기 바랍니다.

wizardrabbit   18일 전

std::cin, std::cout을 사용하는 방법으로 풀었습니다. 코드를 올려주실 수 있으신가요?

srand   17일 전

cin, cout 사용해서 풀어봤습니다.

1.  cin.tie(nullptr)->sync_with_stdio(false); 미사용 => TLE

2.  cin.tie(nullptr)->sync_with_stdio(false); 사용 => AC (120ms)

3. mmap을 활용한 fastio => AC (28ms)

혹시.. 출력때마다 flush하는 endl 을 사용한건 아닌지요..?

wizardrabbit   17일 전

@srand 오, 저도 이게 의심되네요. endl을 사용하면 매 출력마다 flush를 수행하니 수행시간이 굉장히 크게 증가할 거고요.

wizardrabbit   17일 전

줄바꿈을 할 경우 인터랙티브 문제가 아닌 이상 '\n' 을 사용해 출력해야 온전히 빠른 입출력의 효과를 누릴 수 있습니다.

dyepeyyt   17일 전

추가로 endl을 사용하는 게 습관이 되어서 고치기 힘들다면, 다음과 같은 macro를 추가하는 것도 방법입니다.

물론, interactive problem이 아니라는 가정 하에 말이죠.

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