대회 채점 도우미
시간 제한1초메모리 제한1024 MB
제출 파일 이름, 반환 코드, 실행 시간, 출력을 보고 다섯 가지 판정 중 하나를 출력합니다.
문제
경쟁 프로그래밍을 처음 해 보는 사람은 이미 코딩을 잘하더라도 대회의 제약 조건에 맞춰 코드를 작성하기 어려워하는 경우가 있다. 가장 좋은 학습법은 직접 해 보는 것이라서, 많은 대회에는 코드 제출부터 심사위원의 응답을 받기까지의 전 과정을 시험해 볼 수 있는 연습 세션이나 워밍업 세션이 있다. 그럼에도 이 세션에 참여하지 않아서 정작 중요한 실제 대회에서 시간을 낭비하는 실수를 하는 사람이 늘 있다. 예를 들어 입력을 요청하는 문구를 출력하거나, C 프로그램에서 return 0을 빠뜨리기도 한다. 이런 일이 자주 일어나서 심사위원은 제출물을 평가할 프로그램이 필요하다.
경쟁 프로그래밍 문제의 정보와 그 문제에 대한 제출물이 주어지면, 심사위원이 가장 적절한 판정을 내리도록 도와라.
입력
첫 번째 줄에는 대회 문제에 지정된 파일 이름이 주어진다. 소문자 영문자 1자 이상 20자 이하로 이루어진 문자열이며, 확장자(.c, .cpp, .java, .py)는 포함하지 않는다.
두 번째 줄에는 제출한 파일의 이름이 주어진다. 1자 이상 70자 이하의 문자열이다. 확장자가 붙어 있을 수 있지만, 참가자가 잘못된 확장자(예: .html, .pl, .rb, .asp, ...)를 썼을 수도 있다. 이 파일 이름은 영문자만이 아니라 여러 문자로 이루어질 수 있다. 예를 들어 C:\My Documents\graph.py도 파일 이름이 될 수 있다.
세 번째 줄에는 공백 한 칸으로 구분된 정수 세 개가 주어진다. r (0 ≤ r ≤ 10)은 제출한 프로그램의 반환 코드, d (1 ≤ d ≤ 10)은 올바른 프로그램이 실행될 때 허용되는 제한 시간(초), e (0 ≤ e ≤ 20)은 프로그램이 실행되는 동안 경과한 시간(초)이다. 실제 대회에서는 제출한 프로그램을 실행하지 못할 수도 있지만, 이 문제에서는 문제를 단순하게 하려고 그 부분을 다루지 않는다.
네 번째 줄에는 정수 c (1 ≤ c ≤ 10)가 주어진다. 올바른 프로그램이 출력하는 줄 수이다. 이어지는 c개의 줄에 올바른 출력이 주어진다. 각 줄은 0자 이상 70자 이하이며, 첫 줄과 마지막 줄에는 공백이 아닌 문자가 최소 하나 있다.
다음 줄에는 정수 t (0 ≤ t ≤ 10)가 주어지며, 제출한 프로그램이 출력하는 줄 수이다. 이어지는 t개의 줄에 제출한 프로그램의 출력이 주어진다. 각 줄은 0자 이상 70자 이하이다. 올바른 출력과 달리, 제출한 출력의 첫 줄과 마지막 줄에 공백이 아닌 문자가 있다는 보장이 없으므로, 제출한 출력이 전부 공백일 수도 있다. 실제 대회에서는 제출한 프로그램의 출력 줄 수가 예상보다 훨씬 많거나 일부 줄이 예상 길이를 크게 넘을 수 있지만, 이 문제에서는 단순하게 하려고 그런 경우를 다루지 않는다.
출력
제출한 파일 이름이 지정된 문제 파일 이름과 대소문자를 구분하여 일치하지 않거나, 유효한 확장자(.c, .cpp, .java, .py) 중 하나가 아니면 Compile Error를 출력한다. 그렇지 않고 프로그램의 반환 코드가 0이 아니면 Run-Time Error를 출력한다. 그렇지 않고 제출한 프로그램의 실행 시간이 제한 시간을 넘으면 Time Limit Exceeded를 출력한다. 그렇지 않고 제출한 프로그램의 출력이 올바른 출력과 줄 단위, 문자 단위로 일치하지 않으면 Wrong Answer를 출력한다. 그 밖의 경우에는 Correct를 출력한다.