juhongkim2   7년 전

EOF까지 입력받도록 했고

시간초과 날까봐 이분탐색 했고

처음 확률이 99퍼 이상이면 -1출력하도록 까지 했는데

계속틀렸다고만 하니 미칠지경입니다


확률 구할때 버린다고 했는데 y/x구할때 (double)로 형변환 하고 다시 (long long)으로 형변환 하면

어치피 소수점 부분은 버려지는거 아닌가요?


좀 도와주세요..ㅠㅠ

ntopia   7년 전

1000000000 980000000

을 넣으면 나오는 답으로 승률을 계산해봐도 여전히 98% 네요

juhongkim2   7년 전

말씀하신대로 1000000000 980000000을 입력했을때 98에서 변하지를 않더군요
계산해보니 1000000000게임을 더 해야야 99퍼로 변하는데 위 코드는 r을 너무 작게 잡은 거 같더군요
r을 더 크게잡아서 98->99로 변하도록 바꾸긴 했는데 그래도 틀리네요ㅋㅋㅋㅋㅋㅋㅋㅋ
혼란스럽습니다... 도대체 뭘 틀린건지 감도 안잡히네요

ntopia   7년 전

r을 얼마로 잡으신거죠? 바뀐 소스도 좀 볼 수 있을까요?

juhongkim2   7년 전

x가 최대 10억이라 r 20억으로 잡았습니다.

methylene   7년 전

아무리 봐도 잘못된 게 없어서

double 이랑 long long 형변환 없애고

(y * 100) / x

((y + mid) * 100)/(x + mid)

로 계산하니 통과되네요.

형변환 시에 뭔가 문제가 있나봅니다.

double 형변환이 int 범위 내에서만 가능한가?

juhongkim2   7년 전

ㅋㅋㅋㅋㅋㅋㅋ감사합니다

참...쉬우면서도 어렵네요 이거...

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