SOJ ONLINE JUDGE

출제 안내

출제 흐름

출제 권한

출제 제안 기능은 운영자가 등록한 출제자와 운영자만 사용할 수 있습니다. 권한이 필요하면 운영 연락처로 GitHub 계정명을 전달하세요.

  1. 문제 작성

    General · Statement

    제목·난이도·태그·시간 및 메모리 제한과 문제 지문·입력·출력·노트를 작성합니다.

    태그는 한글 이름 또는 solved.ac 코드로 검색할 수 있으며 저장할 때는 hash_set 같은 코드를 사용합니다. 제한과 표기는 아래 문제 컨벤션과 지문 컨벤션을 따릅니다.

  2. 테스트케이스 구성

    Tests

    테스트케이스는 직접 입력하거나 Generator로 만듭니다.

    Sample은 공개 예제이면서 실제 채점 대상입니다. 예제부터 순서대로 채점하며 입력과 정답이 모두 같은 일반 테스트는 중복 채점하지 않습니다.

  3. 정해와 파일 등록

    Solutions · Files

    MCS.cpp에는 정답 코드를 등록하고, 모든 문제에 필수인 val.cpp를 Files에서 저장합니다.

    • Validator: 공용 testlib.h와 registerValidation(argc, argv)를 사용합니다. 값·문자열은 inf.readInt/readLong/readToken, 구분자는 inf.readSpace/readEoln, 입력 끝은 inf.readEof로 검사하며 숫자나 줄을 직접 파싱하지 않습니다. 저장 입력은 LF 개행을 기준으로 하고 마지막 개행 여부는 문제 형식에 맞게 검사합니다. 범위 초과·잘못된 공백이나 개행·여분 토큰도 거부하며, testlib 표준 API로 표현할 수 없는 조건만 읽은 값에 추가로 검사합니다. 예외가 필요하면 검토 요청에 이유를 남깁니다.
    • Generator·Checker: Generator를 사용하면 gen.cpp를 작성하고, Special Judge가 필요한 경우에만 checker.cpp를 추가합니다.
    • 솔루션 검수: 독립 정해·오답 코드와 기대 판정을 저장할 수 있습니다. Packaging 후 모든 Sample·Normal 테스트를 검사하며 AC는 전체 통과, WA·TLE·MLE·RTE는 해당 실패가 한 번 이상 있어야 합니다. CE·SE는 기대 충족으로 보지 않습니다. AC 또는 TLE/MLE는 전체 테스트가 해당 두 판정 중 하나여야 합니다. 결과에는 테스트별 판정·시간·메모리와 새 입력이 표시됩니다.
    • 검수 소스: 일반 제출·랭킹과 분리되며, 수동 검수 소스는 게시·내보내기에 포함되지 않습니다. Polygon 원본은 tag/type과 함께 가져오며 미지원 항목은 실행 전에 직접 매핑합니다. 합계 100개, 소스당 64 KiB까지 저장합니다.
  4. OUT 파일 생성

    Packaging

    Generator와 MCS를 실행해 최종 채점에 사용할 입력과 OUT 파일을 만듭니다. Packaging은 저장된 val.cpp로 모든 입력을 먼저 검사하며 실패하면 패키지를 교체하지 않습니다.

    생성 작업은 일반 채점을 우선 처리한 뒤 실행됩니다. Packaging 화면에서 상태를 확인합니다. 실행 중 초안을 수정하면 이전 결과는 반영되지 않으며, 이 경우나 작업이 중단된 경우 현재 내용을 저장한 뒤 다시 요청합니다.

  5. 검토 요청

    Review

    작성이 끝나면 Review에서 검토 요청을 보냅니다. 운영자가 지문·테스트케이스·정해·채점 방식을 확인한 뒤 등록합니다.

    val.cpp가 없거나 비어 있으면 검토 요청과 기존 문제의 수정 반영을 진행할 수 없습니다. 검토 대기 중에는 편집·패키지 재생성·삭제를 할 수 없으며, 반려되면 사유를 수정한 뒤 다시 요청합니다. 승인된 제안은 목록에서 정리되고 게시된 문제와 채점 자료는 유지됩니다.

Polygon 패키지

Polygon ZIP에서 새 출제 제안이나 수정 권한이 있는 문제의 수정본을 만들 수 있습니다. 기존 문제와 작성 중인 제안은 덮어쓰지 않습니다.

문제 컨벤션

기본 제한 시간 1000ms · 메모리 512MB

알고리즘이나 실행 특성상 다른 제한이 필요하면 근거와 함께 조정합니다. 언어별 보정은 실행 환경에서 확인하세요.

지문 컨벤션

아래 규칙은 문장에 명시된 조건과 예외를 포함해 모두 반드시 지킵니다.

문장 구성

정의와 조건

입력

출력

수식

예제 설명