BeeTREE서비스 소개이용 규칙

채점 환경

BeeTREE 채점기가 제출 코드를 실행하는 방법입니다. 아래 명령은 언어별 기본 설정이고, 채점할 때는 메모리 옵션 같은 세부 값이 조금 다를 수 있습니다.

채점 절차 요약

  1. 제출 코드는 임시 디렉터리에 저장되어 격리된 컨테이너 안에서 실행됩니다.
  2. 컴파일이 필요한 언어는 먼저 컴파일하고, 실패하면 바로compile_error 로 끝납니다.
  3. 각 테스트케이스의 입력은 표준입력(stdin)으로 주어지고, 표준출력(stdout)이 정답과 비교됩니다.
  4. 출력 비교에서는 줄 끝 공백과 마지막 개행 같은 사소한 차이는 허용하고, 나머지가 정확히 같아야accepted 로 판정합니다.
  5. 스페셜 저지(checker)가 설정된 문제는 정답과 직접 비교하지 않고 채점 스크립트의 판정을 따릅니다. 체커는 checker INPUT OUTPUT ANSWER 순서(testlib 표준)로 호출되며, C/C++ 체커에는 testlib.h 가 기본 제공됩니다.
  6. 모든 단계는 시간/메모리 제한 안에서 끝나야 하며, 넘으면 각각time_limit_exceeded /memory_limit_exceeded 로 판정합니다.
  7. 런타임 에러(0이 아닌 종료코드, 시그널, 예외)는runtime_error 로 분류됩니다.

샌드박스

  • 각 제출은 독립된 Docker 컨테이너 안에서 실행되며, 채점기 호스트의 파일/네트워크에 접근할 수 없습니다.
  • 네트워크는 꺼져 있어(--network=none) 외부와 통신할 수 없습니다.
  • 실행 디렉터리는 컨테이너 내부 임시 영역으로, 채점이 끝나면 즉시 삭제됩니다.
  • 컴파일/실행 프로세스는 root가 아닌 nobody 사용자 권한으로 동작합니다.
  • 동시에 너무 많은 프로세스가 생성되지 않도록 언어별 PID 제한이 적용됩니다.
  • 채점 시스템을 공격하는 시도(컨테이너 탈출, 자원 고갈 등)는 바로 계정 제한 사유가 됩니다.

제한 시간 · 메모리

  • 각 문제마다 시간 제한과 메모리 제한이 표시되며, 모든 테스트케이스에 동일하게 적용됩니다.
  • 시간 제한은 wall-clock(실행 경과 시간) 기준입니다. 컴파일 시간은 별도로 측정되며 채점 시간에 포함되지 않습니다.
  • 컴파일러/인터프리터의 시작 오버헤드(JVM 등)는 실행 시간에 포함되므로 언어별 보너스가 적용됩니다.
  • 아래 언어별 카드에 적힌 "최대" 시간은 컨테이너를 강제로 끝내는 절대 상한이고, 실제 채점에는 문제별 시간 제한이 먼저 적용됩니다.

언어별 컴파일 · 실행 명령

환경설정 → 컴파일러 버전에서 다른 버전을 선택하면 해당 버전 이미지로 채점됩니다. Python 3.11~3.14, GCC 12~15(C++23, C++26 포함), Java 17·21 등 여러 버전을 고를 수 있습니다.

Assembly (32-bit)

sol.asm최대 10s
컴파일
nasm -f elf32 sol.asm -o sol.o && if grep -Eq '^[[:space:]]*global[[:space:]]+_start([[:space:]]|$)' sol.asm; then ld -m elf_i386 sol.o -o sol; else gcc -m32 -no-pie sol.o -o sol; fi
실행
./sol

Assembly (64-bit)

sol.asm최대 10s
컴파일
nasm -f elf64 sol.asm -o sol.o && if grep -Eq '^[[:space:]]*global[[:space:]]+_start([[:space:]]|$)' sol.asm; then ld sol.o -o sol; else gcc -no-pie sol.o -o sol; fi
실행
./sol

Bash

sol.sh최대 15s
실행
bash sol.sh

C

지원 버전: GCC 13 · GCC 15 · GCC 14 · GCC 12
sol.c최대 10s
컴파일
gcc -O2 -o sol sol.c -lm
실행
./sol

C#

sol.cs최대 15s
컴파일
mcs -out:sol.exe sol.cs
실행
mono sol.exe

C++

지원 버전: GCC 13 · C++17 · GCC 14 · C++23 · GCC 15 · C++23 · GCC 15 · C++26 (실험적) · GCC 12 · C++17
sol.cpp최대 10s
컴파일
g++ -O2 -std=c++17 -o sol sol.cpp -lm
실행
./sol

Go

지원 버전: Go 1.22 · Go 1.23 · Go 1.21
sol.go최대 10s
컴파일
go build -o sol sol.go
실행
./sol

Java

지원 버전: Java 21 · Java 17 (LTS)
Main.java최대 15s
컴파일
javac Main.java
실행
java -XX:+UseContainerSupport Main

JavaScript (Node.js / Bun)

지원 버전: Node.js 20 · Node.js 22 · Node.js 18 · Bun 1.x
sol.js최대 15s
실행
node sol.js

Kotlin

Main.kt최대 20s
컴파일
kotlinc Main.kt -include-runtime -d sol.jar
실행
java -XX:+UseContainerSupport -jar sol.jar

OCaml

sol.ml최대 10s
컴파일
ocamlopt -O2 -o sol sol.ml
실행
./sol

PHP

sol.php최대 15s
실행
php sol.php

Python

지원 버전: Python 3.14 · Python 3.13 · Python 3.12 · Python 3.11
sol.py최대 15s
실행
python3 -B sol.py

Ruby

sol.rb최대 15s
실행
ruby sol.rb

Rust

지원 버전: Rust 1.77 · Rust 1.80
sol.rs최대 10s
컴파일
rustc -O -o sol sol.rs
실행
./sol

Swift

sol.swift최대 15s
컴파일
swiftc -O -o sol sol.swift
실행
./sol

TypeScript (Deno)

sol.ts최대 15s
실행
deno run --quiet --no-prompt sol.ts

Visual Basic

sol.vb최대 15s
컴파일
vbnc -nologo -out:sol.exe sol.vb
실행
mono sol.exe

아희 (Aheui)

sol.aheui최대 15s
실행
aheui sol.aheui

엄준식

sol.umm최대 15s
실행
umjunsik sol.umm

참고: Java/Kotlin 같은 JVM 언어에는 컨테이너 메모리를 제대로 인식하도록-XX:+UseContainerSupport 옵션이 자동으로 붙습니다. C/C++는 -O2 최적화, Rust는 -O, OCaml은 -O2 가 켜진 상태로 컴파일됩니다. 채점 환경 관련 문의는 BeeTREE Discord로 연락 주세요.