pichulia   4년 전

https://www.acmicpc.net/board/view/43635  게시글의 연장선으로...

조건이 잘못됨을 넘어서, 그 잘못된 조건으로 인해서 잘못 계산된 데이터가 존재함으로 인해서

올바른 풀이는 틀리고, 잘못된 풀이가 정답으로 인정받고있는, 아주 심각한 오류가 발생하고 있어서 이렇게 한번 더 글을 작성해봅니다.


문제 조건중에 " 모든 선풍기의 최종 비용값은 264 보다 작다" 라는 조건이 있는데

이 조건을 위반하는 데이터가 존재하며,

저 조건을 위반함으로 인해 생기는 잘못된 데이터를 정답으로 처리하는 데이터가 존재하는 것으로 추측됩니다.

채점번호 16243078 : 최종계산값이  264 - 1 보다 큰 값이 나오면 무조건 배제하도록 안전장치를 마련한 코드 --> 틀렸습니다.

채점번호 16243074 : overflow고 나발이고 신경 안쓰고 그냥 무작정 계산한 코드 --> 맞았습니다.

채점번호 16243073 :   263 보다 크고  264 보다 작은 값이 정답이 되는 경우에 대한 고려를 하지 않은, 안전장치가 없는 코드 --> 맞았습니다.

아래 데이터는 최종 선풍기 비용이  264 보다 큰 데이터에 대해서 코드를 실행시켜본 결과이며

보다시피 1번 선풍기가 2번 선풍기보다 더 좋음에도

2번선풍기에 대한 계산에 overflow가 발생함으로 인해 엉뚱한 답을 출력하고 있습니다.



현재는 저렇게 "이상하게"나오는 코드가 "정답"으로 처리되고 있으니 심각하지 않을 수 없습니다.

데이터의 추가 및 수정이 필요합니다.


감사합니다.

hschoi1104   4년 전

@jh05013 @pichulia


확인이 늦어서 죄송합니다. 확인해본결과 마지막 테스트케이스에서 범위를 초과하는 테스트케이스가 존재 했고

c,c++로 제출한 오버플로우를 고려하지 않은 코드들은 같은 잘못된 답을 내고있었습니다.

대회 진행 중 같은 내용으로 파이썬으로 제출시 C++로 제출시 결과가 다르다는 질문이 있었지만 확인을 제대로 못하였습니다.

불편을 드려죄송합니다. 정정 요청 하겠습니다. 의견 감사드립니다.

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