algospot   8년 전

출력초과가 무슨 경우인가요??

틀렸습니다도 아니고 시간초과도 아니고..

ntopia   8년 전

제출한 답안이 내뱉은 출력의 크기가

정답파일의 크기의 n배 이상이 넘었을 때 (n은 한 16정도 였던 것 같네요)

채점시스템은 제출한 프로그램이 무한히 출력한다고 판단하고 강종시키고 '출력 초과' 라는 결과를 돌려줍니다

보통 출력부분에서 무한루프가 있거나

아니면 아예 코드 자체에 오류가 있어 엉뚱하게 많은 출력을 하는 경우가 해당됩니다

ntopia   8년 전

예를 들어

답은 "1" 인데

출력이 "1 2 3 4 ... 10000" 라면

틀렸습니다 가 아니라 출력초과 가 뜨는거죠.


코드에 무한루프가 없는게 확실하다면 그냥 틀렸습니다 랑 같은걸로 취급하시면 됩니다

algospot   8년 전

흐음,,,,, 오류를 찾아보아도 없는것 같은데.. ..*

algospot   8년 전

방금 bfs안에

시작점에 해당하는 check[st]=1을 추가하니 통과했네요

그럼, 

답출력형식이

1\n

2\n

이런 형태면

출력초과인 경우는 발생하지않겠네요??

ntopia   8년 전

아니요 뭐... 출력형식이랑은 상관없죠

출력파일의 크기를 비교하는거니깐요

rkdeo4104   1년 전

위에서 말씀하신

check[st]=1과 check[st]=0이 어떤 차이가 있는건가요??

서로 결과가 같다고 생각했는데, 채점하면 전자만 맞다고 처리되네요

je0shin   1년 전

check[st]=1

여기서 check 배열은 내가 이 pc 를 봤나 확인하는 배열 같은데

bfs 시작 전에 오리진 노드를 이미 봤다고 마킹하는 거 같습니다.

여기서 마킹을 안 해 놓으면 루프가 있는 경우 (1 > 2 > 3 > 1) 답이 틀리게 됩니다

rkdeo4104   1년 전

답변 감사합니다

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