History: PC^2 사용하기

PC^2란?

  • ACM-ICPC 지역 대회에서 많이 사용되는 대회 진행을 위한 Java기반의 프로그램이다.
  • 참가자가 PC^2를 통해 할 수 있는 일은 다음과 같다.
    • 작성한 소스코드 제출, 결과 확인(submit)
    • 문제와 대회 환경에 대한 질문(clarification)

주의

  • 본 문서는 대회 환경이 windows일때를 가정한다.

필요 파일

  • Java 기반의 프로그램이기 때문에 JRE혹은 JDK의 프로그램이 필요하다.
    • 링크에서 Jdk-version-windows-i586.exe 혹은 dk-version-windows-x64.exe를 다운받아 설치한다.
  • PC^2 클라이언트는 일반적으로 대회 쪽에서 제공을 해주지만, 만약 별도로 받아서 설치하고 싶을 경우 링크에 접속하여 다운을 받을 수 있다.
    • 단, 압축을 풀었을 때 최상위 폴더에 있는 pc2v9.ini 파일을 대회 환경에 맞게 설정 해줘야 하며, 이를 bin폴더에 집어 넣어줘야 프로그램이 제대로 동작한다.

실행하기

PC^2 클라이언트를 압축을 풀면 안에는 다음과 같이 구성되어 있다.

여기서 bin폴더내의 pc2team.bat를 실행한다.

실행이 정상적으로 될 경우 아래와 같은 화면이 나오며, 주최측에서 전달한 아이디와 비밀번호를 입력하고 Login 버튼을 누른다.
만약, 이 과정의 문제가 있을 경우 다음 링크를 참고하여 java관련 환경 변수 설정을 해주고 다시 시도해본다.

접속에 성공하면 아래와 같은 화면을 볼 수 있다.

해당 그림에서 맨 왼쪽의 숫자는 대회에서 남은 시간을 뜻한다.
Problem과 Language의 경우 자신이 채점할 문제와, 해당 문제를 풀기위해 사용한 컴파일러를 선택하는 부분을 뜻한다.
제출할 소스코드 는 Main File내에 있는 Select를 통해 선택한다.

파일 선택에 있어 자주 실수 하는 경우는 다음과 같으며, 최대한 주의하도록 하자. 해당 경우에 대해서는 모두 오답 처리가 된다.

  • 다른 문제의 소스코드를 제출하는 경우
  • 솔루션 폴더나, 실행 파일을 제출하는 경우

Additional File의 경우 거의 쓸일이 없고, 이곳에 다른 파일을 추가해서 제출하는 경우가 없도록 하자.
Test 버튼의 경우, 컴파일이 제대로 되는지 확인을 하거나, 자신이 만든 입력파일을 선택하여 프로그램이 제대로 동작하는지 판별하는 부분이다.
이 기능의 경우 컴퓨터 자체의 별도의 경로설정이 되지 않을 경우 제대로 동작하지 않기 때문에 이 부분이 안된다고 너무 걱정하실 필요는 없으며 실제로 대회 도중에도 많이 쓰이지 않는 기능이다.

그래도 반드시 Test기능을 반드시 쓰고 싶다고 할 경우에는 각 컴파일러에 대한 올바른 경로 설정이 되어야 한다.

제출하기

채점을 받기 위해서는 Submit버튼을 눌러야 한다. 누를 경우 다음과 같이 정말 제출 할것이냐? 하는 메시지박스가 뜨게 된다. 여기서 Yes를 누르게 되면 바로 제출이 되어 채점자에게 코드가 넘어간다. 이 때, 파일명에는 빈 칸을 넣지 않는 것이 좋다.

정상적으로 제출이 되었을 경우에는 다음과 같은 메시지를 확인할 수 있다.

다음 그림은 제출한 해법이 정답으로 간주되었을 경우의 예이다.

다음은 오답으로 간주된 경우의 예이다.

정답이 아닌 경우에 대한 이유는 여러가지가 있는데 정리하면 다음과 같다.

  • Comilation Error - 컴파일이 제대로 되지 않았을 경우, 이 역시 정답이 아닌것으로 간주한다.
  • Run-time Error - 실행 도중에 예기지 못한 결과가 발생하여 프로그램이 종료되었을 경우를 뜻한다.
  • Time-limit Exceeded - 제한된 시간 내에 프로그램이 실행이 끝나지 않았을 경우를 뜻한다.
  • Wrong Answer - 프로그램은 정상적으로 동작하였으나 출력된 답이 정답과 다를 경우를 뜻한다.
  • Excessive Output -예상보다 많은 출력이 발생 하였을 경우를 뜻한다.
  • Output Format Error - 답은 일치하는 듯 하나, 출력 형식을 어겼을 경우를 뜻한다. 이 부분 역시 정답이 아닌것으로 간주한다.
  • Other Contact Staff - 예기치 못한 오류가 발생하였다는 의미이다. 이 경우 바로 주최측에 연락해야한다. 단, 전화나 메일 등을 연락보다는 clarification기능을 이용한 연락을 하는 편이 좋다.

문제에 대한 질문 하기

문제를 풀거나 대회 진행중에 문의사항이 있을 경우는 반드시 clarification기능을 통해서 문의를 해야 한다. 문의를 하면 좋은 경우는 다음과 같다.

  • 입력의 범위가 어디까지 들어오는지 문제에 명시 되어있지 않은 경우
  • 문제 설명에 모순이 있는 경우
  • 입력 예시가 잘못된 경우.
  • 제출한 답안에 대한 결과가 예상치 못한 경우

다음의 경우에 대해서는 clarification기능을 이용하여도 답을 얻을 수 없는 경우이다. 만약 답이 오더라도, 기본적인 답안인 "No response, read the problem carefully"라는 답안이 되돌아올 가능성이 높다.

  • 대회와 관련 없는 질문
  • 컴파일 오류에 대한 문제
  • 자신의 솔루션이 어디에서 틀린건지 물어보는 류의 질문
  • 채점이 언제 되는지에 대한 질문

다음과 같이 질문할 문제를 선택하고 내용을 적은 다음에 submit때와 유사하게 제출을 하면 된다.

결과 확인

일반적으로 대부분의 제출과 질문에 대해 알림 메시지가 뜨지만, 만약 결과를 확인 못했을 경우, 'View Runs'와 'View Clarifications'탭을 클릭해서 현재까지의 진행 상황을 알 수 있다.

참고로 Runs 부분 에서 New라고 되어 있는 것은 아직 채점이 되지 않은 것을 뜻한다.