USACO 규칙(2021년 12월 이후)

이 글은 usaco.org의 정보를 바탕으로 작성되었습니다.

소개

USACO(미국 정보올림피아드, USA Computing Olympiad)가 내일부터(17일~20일) 열립니다! 온라인으로 진행되는 대회로, 누구나 참여 가능하고, 무료입니다. 백준에서는 boj.kr/usaco 를 통해 풀어볼 수 있습니다. 다만 득점 정도를 확인할 수 없기 때문에 필요하다면 usaco.org를 사용하는 것도 좋을 것 같습니다.

승급 제도

첫 참가자들은 브론즈 등급으로 시작합니다. 승급 점수 컷을 넘으면 다음 등급으로 승급합니다. 등급은 Bronze > Silver > Gold > Platinum 입니다. 승급 이후에는 이전 등급의 대회를 다시 응시할 필요가 없습니다. 즉, 등급의 강등이 없습니다. 또한 해가 지나도 유지됩니다.

대회 형식

언어는 C/C++, Java, Python을 사용할 수 있습니다. 3~4개의 문제가 출제되고, 3~5시간동안 진행됩니다. 타임 프레임 형식으로, 대회 기간 동안 아무때나 원하는 시간에 참가하면 됩니다. 따라서 종료 후에 문제에 대해 발설하면 안됩니다. 대회에서 만점을 받으면 바로 다음 등급의 대회를 참가할 수 있습니다.

각 코드는 여러 테스트 케이스들에 대해 X (틀렸습니다), T (시간 초과), ! (런타임 에러 또는 메모리 초과), E (빈 출력 파일), M (출력 파일 누락)의 판정을 받을 수 있습니다.

부정행위

  • 개인전입니다.
  • 치팅 금지. 즉, 대회 기간 동안 문제에 대해 발설/토론/코드공유 등을 해서는 안됩니다.
  • IOI(국제 정보올림피아드, International Olympiad in Informatics)의 환경을 적용합니다. 따라서 미리 작성한 코드나 템플릿 코드를 사용해서는 안됩니다.
  • 2개 이상의 ID를 생성해 풀이 시간을 늘리는 행위를 해서는 안됩니다.
  • 문제풀이와 관계없는 악의적인 코드 작성을 해서는 안됩니다.

위 규정을 위반하는 참가자는 계정 영구 정지 조치됩니다.

채점 환경

필자가 Java와 Python 채점 환경에 대해 아는 바가 없어 글의 일부를 그대로 가져옵니다.

  • C/C++: gcc/g++ 7.5.0 환경에서 컴파일합니다. -O2(최적화), -lm(수학 라이브러리 접근)가 있습니다. C++11 또는 C++17로 채점할 수 있습니다.
  • For Java programmers: Programs are compiled and executed with the OpenJDK Runtime Environment, version 11.0.10 (we have recently upgraded from Java 8 to Java 11). You must submit your entire program in one file, and this file must have exactly one public class named the same as the file (for example, if your file is called "MyFile.java", then it should contain "public class MyFile"). This class needs to have your public static void main function. All other clases in the file should be defined without the "public" tag (e.g., as "class MyOtherClass"). Do not include a "package" line in your source code.
  • For Python programmers: We offer both Python 2.7.17 and Python 3.6.9; please be sure to select the correct version when you submit, since it is often the case that programs developed for one version will not work properly in the other (use "python --version" to check the version of your local Python interpreter). Note that due to the slower speed of Python, we cannot always guarantee that it is possible to solve the largest test cases for some problems even with the inflated time limit given to Python submissions (we make our best efforts to design our contests so they are accessible to Python programmers, particularly in the lower divisions, but you may eventually wish to consider learning a faster language once you move up to higher divisions, where running time becomes more critical). Executions are run with the "-O" flag to enable some optimization.

기타 중요 내용

  • 2020년 12월부터 전부 표준 입출력을 사용합니다. 따라서 fast I/O를 사용하는 것이 좋습니다.
  • 백준은 이전 문제들에 대해서도 표준 입출력만을 지원합니다.
  • 재제출에 대한 패널티는 없습니다.
  • 가장 마지막에 제출한 코드로 점수를 매깁니다.
  • 만점은 1000점입니다.
  • The judges reserve the right to increase time limits or add/remove test cases during grading to produce final results. 제 번역이 맞다면(누가 확인 해주시면 감사하겠습니다), 출제진이 중도에 데이터 및 제한을 수정할 수 있습니다.

댓글 (4개) 댓글 쓰기


0000000000 11달 전

The judges reserve the right to increase time limits or add/remove test cases during grading to produce final results. 번역 => 최종 결과를 위해 출제진이 중도에 시간 제한을 늘리거나 데이터를 추가/삭제할 수 있습니다.


dohoon 11달 전

이 사항으로 인해 대회 당시 통과한 코드를 오답 처리하여 승급에 영향을 줄 수 있나요?


0000000000 11달 전

문장에서 "grading"의 의미가 대회 후 순위를 매기는 과정이라면 그럴 수 있을 것 같습니다.


anonyk 11달 전

이번 2021 December 실버 1번 문제가 재채점 된걸 보면 이 의미가 맞을 듯 합니다. 실버 1번 문제의 시간 제한이 C/C++ 3초, Java/Python 6초로 변경 후 재채점 되었습니다.