저도 처음에 제일 표가 많은 사람이랑만 비교했다가 문제 제대로 이해하고 다시 풀었는데 자꾸 45%에서 틀렸다고 나옵니다.
혹시 제 코드 봐주실수 있나요?
24913번 - 개표
저도 처음에 제일 표가 많은 사람이랑만 비교했다가 문제 제대로 이해하고 다시 풀었는데 자꾸 45%에서 틀렸다고 나옵니다.
혹시 제 코드 봐주실수 있나요?
14번째 줄에 c가 0일때를 생각하여 코드를 짜봤는데 그래도 같은 데서 틀렸다고 나오네요.
저를 조금만 더 도와주시면 정말 감사하겠습니다.
제가 변수명을 대충 짓는 습관이 있어요..
빨리 습관을 고쳐야겠네요.
분량은 뭘 말씀하시는 건가요?
혹시 몰라서 변수들도 다 long long int 로 바꿨고, 배열 크기도 100001 로 잡아놨습니다.
"제가 아닌 후보를 찍은 표"는 정후가 아닌 다른 사람을 찍은 표 전부를 뜻합니다.
제가 flapppybird님의 말씀을 잘 이해한 건지는 몰라도 다시 코드를 보니까 저는 25번 줄에서 다른 후보들한테 한 표만 주게 되어 있네요.
그래서 변수를 1개 더 추가해서 다른 후보들한테 정후를 이기거나 동점이지 않을때 최대한 많이 표를 줬습니다.
그래도 같은데서 틀렸다고 나오네요...
당선 될 가능성이 있다는것은 표 y개가 잘 분배되어서 당선되는 경우가 하나라도 있는 경우를 말합니다.
변수 vote가 배열의 각 값마다 줄 수 있는 최대 개수를 세고 표 c개에서 표 vote개를 빼서 표를 다 분배했으면 (c <= 0) YES 아니면 NO를 출력하게 했습니다.
vote는 arr[n + 1] + b보다 1개가 적을 때까지 증가하므로 c >= 0이라는 것은 표 c개에서 정후를 이기지 못하게 표를 분배했을 때 표가 남았다는 것이니까 그 남은 표(c)의 개수가 1개이상이면 다른 후보들한테 더 표를 주면 정후와 표의 개수가 같거나 더 많아지는 거니까 정후가 당선되지 않다는 것을 의미합니다.
제가 틀린 것이 있으면 말씀해주세요.
예제를 다시 읽어 주세요. https://www.acmicpc.net/source... 이거 기준으로 설명하자면 2번 쿼리에서 c!=0인 경우 어떠한 경우라도 NO를 출력하는 것 같습니다.
그 코드는 제가 잘못 제출한 코드입니다.
30번째 줄에 elected 대신에 c를 넣어야 돼요.
c<=0인 것과는 별개로 무조건 정후가 당선되지 못하는 다른 조건이 존재합니다.
댓글을 작성하려면 로그인해야 합니다.
mk9901 2년 전
지금까지 집계된 표 이후 저를 찍은 표가 x장 집계 된다면
arr[N + 1] + x
지금까지 집계된 표 이후 제가 아닌 후보를 찍은 표가 y장 집계 된다면
=> 본인 후보랑 더 많은 표를 가지는 사람이랑 비교하는 것만 아님.
=> 여러 후보들 사이에서 y장 더 집계한 후 더 많은 표를 가지는 후보를 찾아서 본인 후보랑 비교.
따라서 현재 가장 많은 표를 가진 다른 후보 vs 다양한 표를 가진 다른 후보들
max(mx, (total + y - 1) // n)
개인적으로 이 문제의 정답률이 낮은 이유가 지문을 읽고 그대로 해석된 방향성을 잡는 사람에 따라 정답률이 갈라지는 것으로 보임.