hoon3722   3년 전


제가 푼 방법은 a,b,c,d 4개를 두개로 나누어서 두개씩 짝을 지어서 만든 합의 배열을 만들었습니다. ( ab의 합 배열, cd의 합 배열)

그 다음에 cd 배열을 병합정렬로 정렬시키고 cd배열을 이분 탐색해서 하나씩 ab배열의 원소와 cd배열의 원소 합이 0이되는걸 세도록 했습니다.

아 그리고 cd에 같은 수로 꽉 차있으면 한번 찾을때마다 계속 돌아야되서 data라는 배열을 따로 만들고 거기다가 값을 저장해놓아서 반복 안하게 했습니다.

50퍼쯤에서 틀렸습니다 뜹니다.

왜 틀렸는지 보니까 이게 뜨네요 

제 생각에는 clon 함수에서 아무리 생각해도 빈틈이 없는것같은데..

(정렬에는 문제가 없고 이분탐색함수 clon이나 find 함수에 문제가 있습니다.)

Main.c: In function ‘clon’:
Main.c:63:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^

3587jjh   3년 전

다른 질문글을 읽어보시는걸 추천드립니다

yj10516   3년 전

이게 WA로 연결되는건 아니지만 무한루프 가능성이 있어서

n=1 인 Input이 왔을때 clon이 start=end=0 인 상태로 호출할 수 있습니다.

이경우에 clon 이 무한루프상태에 빠질 수 있어서 문제가 될 것 같습니다.

yj10516   3년 전

int 형으로 답을 저장하셨는데

모든 A[i]=B[i]=C[i]=D[i]=0 일때의 답은 n^4로

n=4000일때 Int로 저장시 오버플로우가 납니다.

hoon3722   3년 전

참고했더니 풀었습니다. 감사합니다.

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