1325번 - 효율적인 해킹
출력초과가 무슨 경우인가요??
틀렸습니다도 아니고 시간초과도 아니고..
제출한 답안이 내뱉은 출력의 크기가
정답파일의 크기의 n배 이상이 넘었을 때 (n은 한 16정도 였던 것 같네요)
채점시스템은 제출한 프로그램이 무한히 출력한다고 판단하고 강종시키고 '출력 초과' 라는 결과를 돌려줍니다
보통 출력부분에서 무한루프가 있거나
아니면 아예 코드 자체에 오류가 있어 엉뚱하게 많은 출력을 하는 경우가 해당됩니다
예를 들어
답은 "1" 인데
출력이 "1 2 3 4 ... 10000" 라면
틀렸습니다 가 아니라 출력초과 가 뜨는거죠.
코드에 무한루프가 없는게 확실하다면 그냥 틀렸습니다 랑 같은걸로 취급하시면 됩니다
흐음,,,,, 오류를 찾아보아도 없는것 같은데.. ..*
방금 bfs안에
시작점에 해당하는 check[st]=1을 추가하니 통과했네요
그럼,
답출력형식이
1\n
2\n
이런 형태면
출력초과인 경우는 발생하지않겠네요??
아니요 뭐... 출력형식이랑은 상관없죠
출력파일의 크기를 비교하는거니깐요
위에서 말씀하신
check[st]=1과 check[st]=0이 어떤 차이가 있는건가요??
서로 결과가 같다고 생각했는데, 채점하면 전자만 맞다고 처리되네요
check[st]=1
여기서 check 배열은 내가 이 pc 를 봤나 확인하는 배열 같은데
bfs 시작 전에 오리진 노드를 이미 봤다고 마킹하는 거 같습니다.
여기서 마킹을 안 해 놓으면 루프가 있는 경우 (1 > 2 > 3 > 1) 답이 틀리게 됩니다
답변 감사합니다
댓글을 작성하려면 로그인해야 합니다.
algospot 8년 전
출력초과가 무슨 경우인가요??
틀렸습니다도 아니고 시간초과도 아니고..