zoskeksk   4년 전

C 배열을 int로하면 틀리고 long long으로 하면 맞는데

들어오는 수의 갯수가 10^6개 이고

그 수의 합을 b로 나눈 값에 ++을 해주는건데

이게 왜 int의 범위를 벗어나는 거죠?

다 한곳에 들어간다고 쳐도 10^6개아닌가요? 

139   4년 전

가장 간단한 예로는 모든 i에 대해서  a_i = m 의 인풋이 들어오고 n = 10^6이라면 count값은 10^12정도 되겠네요

seni   3년 전

겨우 이해했네요.. C배열이 int 라면 


26번째줄의 C[i] * C[i]-1 의 값이 int 범위를 초과할 경우가 생기는군요.


따라서 C 배열을 long long으로 잡을 게 아니라, 그냥  캐스팅만 해줘도 accept 되네요.

knight7024   3년 전

잘 배우고 갑니다...

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