재채점

데이터의 추가, 변경, 수정등과 같은 다양한 이유로 인해 재채점을 하게 됩니다.

재채점은 기록을 남길 수도 있고, 남기지 않을 수도 있습니다. 기록을 남기는 경우에는 재채점 현황 페이지를 통해서 이전 결과와 바뀐 결과를 안내합니다.

대부분의 재채점은 기록을 남기지만, 다음과 같은 경우에는 기록을 남기지 않을 수도 있습니다.

  • 유저의 제출이 없고, 관리자의 제출만 존재함
  • 문제가 업로드된지 7일이 지나지 않음
  • 재채점을 요청한 사람만 해당 문제를 제출했고, 관리자와 기록을 남기지 않기로 합의함
  • 대회 중 재채점 (대회 운영자가 원하면 기록을 남길 수도 있음)
  • 채점 프로그램의 오류로 인해 에서 벗어나지 못한 경우의 재채점 (결과의 변동이 없기 때문)
  • Beta가 붙어있는 문제

기록을 남기지 않는 재채점은 으로 결과를 변경하고, 재채점을 기다립니다.

기록을 남기는 재채점은 색만 변경한 뒤에 재채점을 기다립니다. 예시: , , , ,

재채점의 알림은 재채점이 종료된 후 재채점 결과를 수동으로 검토한 이후 발송합니다.

재채점 규칙

2802번 재채점까지는 다음 규칙을 사용합니다.

  • 데이터를 수정한 시점까지 제출했던 모든 제출을 전체 데이터로 재채점
  • 줄 끝에 \n이 없어서 데이터를 수정한 경우에는 재채점을 하지 않을 수도 있음

2803번 재채점부터는 다음 규칙을 사용합니다.

전체 재채점은 "데이터를 수정한 시점까지 제출했던 모든 제출을 전체 데이터로 재채점"를 의미합니다.

  • ICPC 스타일 문제
    • 데이터 추가: 를 추가된 데이터로 채점하고, 기존 결과와 합쳐서 계산
    • 데이터 수정: 경우에 따라 다르지만 전체 데이터 재채점이 기본 규칙
      • 줄 끝에 \n이 없어서 데이터를 수정한 경우에는 재채점을 하지 않을 수도 있음
    • 시간 제한 변경
      • +: 만 전체 데이터 재채점
      • -: 추가 채점 없이 결과만 변경
    • 메모리 제한 변경
      • +: 만 전체 데이터 재채점
      • -: 추가 채점 없이 결과만 변경
    • 스페셜 저지 추가 및 수정: 전체 데이터 재채점
  • 나머지 스타일 문제: 전체 재채점

상황에 따라서 전체 재채점을 할 수도 있습니다.

재채점 처리

데이터를 추가 및 수정하는 경우 다음과 같은 과정을 거칩니다.

  1. 테스트 채점 서버에 데이터 업로드 또는 변경
    • 테스트 채점 서버는 유저의 제출을 채점하지 않습니다.
  2. 데이터 검증 코드 실행
  3. 관리자가 가지고 있는 문제의 답안을 테스트 채점 서버에서 채점해 결과가 올바른지 확인
  4. 잘못 채점하고 있는 제출을 결과를 변경하지 않고 테스트 채점 서버에서 채점해 결과가 올바른지 확인
  5. 채점 서버에 데이터 배포
  6. 재채점 시작
  7. 재채점이 모두 종료되면 올바르게 재채점이 완료되었는지 확인 후 재채점 알림 발송
    • 이 과정은 재채점이 종료되고 바로 수행되는 것은 아니라 조금 시간이 걸릴 수도 있습니다.

재채점은 요청한 데이터만 추가하는 것은 아닙니다. 데이터를 추가로 더 만들어서 재채점을 할 수 있습니다.

데이터 검증 코드가 실패하면 실패한 데이터를 모두 수정합니다. 따라서, 데이터 추가 요청이지만, 데이터의 수정 및 삭제도 재채점에 포함되어 있을수 있습니다.

대회 제출의 재채점

대회가 종료되면 대회 당시의 제출 내역을 복사해 별도로 저장합니다. 따라서, 대회 문제를 재채점해도 스코어보드는 변하지 않습니다.

대회 스코어보드를 변경해야 하는 경우에는 대회의 주최자가 요청해야 합니다.