10만보다 작거나 같아야 할 이유가 없습니다. 입력의 제한이 10만이라고 해서 출력도 10만 이하인 건 아닙니다.
해당 코드는 제대로 된 답을 출력합니다.
15990번 - 1, 2, 3 더하기 5
제가 직접 돌려봤는데 잘 나옵니다.
온라인 컴파일러에서 돌려봐도 잘 나옵니다. https://ideone.com/53LXbX
제가 가장 의심하는 것은 테스트를 해보실 때 T를 1로 놓지 않고 크게 놓고 99990 하나만 입력해봐서 프로그램이 종료되지 않은 상태를 보신 게 아닌가 하는 것입니다.
cin.tie(NULL);을 했기 때문에 cin이 호출되어도 cout이 flush되지 않으므로, 입력 대기 상태에서는 그 전에 출력한 내용이 화면에 보이지 않을 수도 있습니다. '\n' 대신 endl을 쓰면 flush가 발생하므로 (이러면 cin.tie(NULL)을 한 의미가 없지만) 바로 화면에 보입니다.
하지만 프로그램이 종료될 때는 cout이 마지막에 flush를 수행하면서 화면에 출력하므로 보이는 것이 맞습니다.
종료값이 올바르지 않다는 건 런타임 에러라는 것이고, 그러면 그건 출력이 되고 안 되고의 문제 이전에 먼저 해결을 해야 하는 문제입니다.
그리고 런타임 에러라는 건 환경에 따라서는 발생하지 않을 수도 있기 때문에 그 원인을 모른 채로 이 데이터에서 터진다고 바로 추가 요청을 올려서도 안 됩니다. 사실 다른 것도 마찬가지입니다. 틀렸습니다가 나와도 왜 틀린지를 모른 채로 추가 요청을 했는데 알고 보니 배열 범위를 벗어났기 때문이었다든가 하면, 채점 서버에도 이미 그 데이터가 들어있는데도 우연히도 채점 환경에서는 답을 잘 출력할 수도 있는 것이기 때문입니다.
댓글을 작성하려면 로그인해야 합니다.
purpose 4년 전
채점번호 : 16869480
위의 소스코드를 제출하니 맞았습니다!!가 나오는데
실제로 코드를 이용해서 컴파일한 후에
1
99990
를 입력하면
1 <= n <=100000 인 n을 입력했으므로 답이 출력되어야 하는데
답이 나오지 않습니다. 근데 맞았다고 나옵니다.