ANIGMA
ANIGMA 대회 형식
ANIGMA는 두 가지 Task로 구성된 특별한 대회 형식입니다. Task 1에서는 입력 파일을 제출하고, Task 2에서는 코드를 제출하여 편집 거리(Edit Distance)에 따라 보너스 점수를 받을 수 있습니다.
Task 1: 입력 파일 제출
제공된 코드에서 결함을 유발하는 입력을 찾으세요
목표
문제에서 제공하는 코드와 채점 서버 내부의 정답 코드가 다른 출력을 내는 입력 파일을 찾아 제출하세요.
점수
정답30점
오답0점
채점 방식
- 제출한 입력 파일을 문제에서 제공하는 코드와 채점 서버 내부의 정답 코드를 각각 실행
- 두 코드의 출력이 다르면 정답 (30점)
- 두 코드의 출력이 같으면 오답 (0점)
Task 2: 코드 제출 + 편집 거리 보너스
zip 파일로 코드를 제출하고 편집 거리에 따라 보너스 점수를 받으세요
목표
Makefile이 포함된 zip 파일로 코드를 제출하세요. 모든 테스트케이스를 통과하면 기본 점수를 받고, 원본 코드와의 편집 거리가 작을수록 더 많은 보너스를 받습니다.
점수 구성
기본 점수50점
보너스최대 20점
총점최대 70점
채점 방식
- zip 파일에 Makefile이 있어야 합니다 (build, run 타겟 필수)
make build로 컴파일- 모든 테스트케이스에 대해
make run file=input.txt실행 - 모든 테스트케이스 통과 시 기본 50점 획득
- 원본 코드와의 편집 거리(Levenshtein Distance) 계산
- 편집 거리 계산에는 다음 확장자를 가진 소스 파일만 포함됩니다:
cpp,c,h,hpp,cc,cxx,java,py - zip 파일 내 모든 하위 디렉토리를 재귀적으로 탐색하여 해당 확장자 파일을 읽습니다
- 편집 거리 계산에는 다음 확장자를 가진 소스 파일만 포함됩니다:
보너스 점수 계산
보너스 = 20 × (ratio ^ 1.5)
where ratio = (R_max - edit_distance) / (R_max - R_min)
- R_max: 모든 참가자의 Best Submission 중 최대 편집 거리
- R_min: 모든 참가자의 Best Submission 중 최소 편집 거리
- edit_distance: 현재 제출의 편집 거리
예시:
- R_max = 100, R_min = 10, edit_distance = 10 → 보너스 20점 (최대)
- R_max = 100, R_min = 10, edit_distance = 55 → 보너스 약 10점
- R_max = 100, R_min = 10, edit_distance = 100 → 보너스 0점
스코어보드 시스템
ANIGMA 대회의 등수 매기는 방식
등수 결정 방식
총점과 마지막 제출 시간으로 순위가 결정됩니다
총점 계산
Task 1각 문제당 최대 30점
Task 2각 문제당 최대 70점 (기본 50점 + 보너스 최대 20점)
총점 = Task 1 점수 + Task 2 점수
각 문제의 Task 1과 Task 2 점수를 합산합니다
Best Submission 선정
스코어보드에는 각 유저의 Best Submission이 표시됩니다:
Task 2
- 정답인 제출
- 편집 거리가 가장 작은 제출
- 시간이 가장 빠른 제출
순위 결정 우선순위
- 총점이 높은 순서
- 마지막 제출 시간이 빠른 순서
대회 규칙
ANIGMA 대회 참가 시 반드시 준수해야 할 규칙입니다
📌 대회 규칙
모든 참가자는 아래 규칙을 준수해야 합니다
1.참가 및 계정
- 참가자는 대회 입장 시 운영진으로부터 제공받은 대회 전용 계정을 통해서만 참가해야 합니다.
- 대회 계정의 공유, 양도, 중복 사용은 엄격히 금지됩니다.
2.문제 풀이 환경
- 참가자는 본인 지참 노트북을 사용하여 문제 풀이를 진행합니다.
- 인터넷 검색 및 IDE 사용은 허용됩니다.
- 단, ChatGPT, GitHub Copilot, Bing AI 등 자동으로 소스 코드를 생성하는 AI 기반 서비스의 사용은 금지됩니다.
- 외부인과의 코드 공유, 실시간 소통(메신저, 전화, 화면 공유 등)은 부정행위로 간주됩니다.
3.운영체제 및 실행 환경
- Windows 사용자는 Makefile 실행 시 WSL 환경에서 실행해야 합니다.
- 채점 서버 환경과 로컬 실행 환경은 차이가 있을 수 있습니다.
4.지원하는 언어
- C: C17
- C++: C++20
- Java: JDK 17
- Python: 3.11.2
5.문제 구성 및 점수
- 각 문제는 Task 1 (30점), Task 2 (70점)으로 구성됩니다.
- Task는 단계별 채점 방식으로 진행됩니다.
6.입출력 및 채점 방식
- 본 대회는 출력 기반 채점으로 진행됩니다.
- 입출력 형식은 공백, 줄바꿈을 포함하여 문제에서 요구한 형식과 정확히 일치해야 합니다.
- 입출력을 제외한 비즈니스 로직에 결함이 존재하므로 입출력 코드를 임의로 수정하는 행위는 권장하지 않습니다.
7.예외 처리 관련
- 출력 결과에
[Error]태그가 포함된 모든 예외 처리는 의도된 예외 처리로 간주됩니다.
8.제출 및 시간
- 대회 종료 시각 이후 제출된 결과물은 채점 대상에서 제외됩니다.
- 제출 횟수는 별도의 제한이 없는 한 자유롭게 허용됩니다.
9.부정행위
아래 행위는 부정행위로 간주되며, 운영진 판단에 따라 실격 처리될 수 있습니다:
- 계정 공유 또는 대리 참가
- 코드 및 출력 결과 공유
- 금지된 도구 사용
- 운영진의 사전 허가 없는 외부 도움
10.기타
- 문제 오류 또는 시스템 장애 발생 시 운영진에게 즉시 문의해야 합니다.
- 모든 최종 판단은 운영진에게 있으며, 필요 시 재채점 또는 규칙이 보완될 수 있습니다.
요약
Task 1
- 입력 파일 제출
- 정답 시 30점
Task 2
- zip 파일로 코드 제출
- 테스트케이스 통과 시 기본 50점
- 편집 거리에 따라 최대 20점 보너스
- 총 최대 70점