doju   6년 전

Input & output: Google Drive (2023-10-31 20:16 링크 수정)

preview

위와 같은 방법으로 답에 101497이 등장하는 데이터를 손쉽게 만들 수 있습니다. (by @sukh1222)

위에 첨부한 데이터는 답에 -1.39×101496 이 등장하며, 답을 정확하게 출력한 출력 파일의 크기는 60.0MB입니다.

C++로 푼다면 long double로 계산하고 scientific notation으로 출력하고 기도하면 데이터의 특수성에 의해 오차가 아주 조금 발생해서 통과할 수 있을 것입니다.
long double로 계산하고 일반적인 방법으로 출력할 경우 출력하는 데 시간이 오래 걸려서 시간 초과가 납니다(...).
double로 풀 경우 답이 double 자료형의 한계치인 1.7e308을 넘어가기 때문에 절대로 올바른 답을 출력할 수 없습니다.

답이 실수형으로 나오는 데이터를 만들면 long double을 쓰더라도 오차가 발생해서 틀릴 것 같은데, 어떤 언어를 쓰더라도 적절한 시간 안에 정확한 답을 얻을 수가 없어서 보류합니다. 무슨 생각으로 범위를 이렇게 크게 잡은 건지 이해가 안 되네요.

startlink   6년 전

문제를 풀 수 있게 수정하는 방향으로 가봅시다.

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