BeeTREE서비스 소개이용 규칙

채점 환경

BeeTREE 채점기가 제출 코드를 어떻게 실행하는지에 대한 안내. 컴파일/실행 명령은 실제 운영 채점기와 자동으로 동기화됩니다.

채점 절차 요약

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

샌드박스

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

제한 시간 · 메모리

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

언어별 컴파일 · 실행 명령

환경설정 → 컴파일러 버전에서 다른 버전을 선택하면 해당 버전 이미지로 채점됩니다. Python 3.11 ~ 3.14, GCC 12 ~ 14 등 여러 버전을 지원합니다.

Assembly (32-bit)

sol.asm최대 10s
Compile
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
Run
./sol

Assembly (64-bit)

sol.asm최대 10s
Compile
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
Run
./sol

Bash

sol.sh최대 15s
Run
bash sol.sh

C

지원 버전: GCC 13 · GCC 15 · GCC 14 · GCC 12
sol.c최대 10s
Compile
gcc -O2 -o sol sol.c -lm
Run
./sol

C#

sol.cs최대 15s
Compile
mcs -out:sol.exe sol.cs
Run
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
Compile
g++ -O2 -std=c++17 -o sol sol.cpp -lm
Run
./sol

Go

지원 버전: Go 1.22 · Go 1.23 · Go 1.21
sol.go최대 10s
Compile
go build -o sol sol.go
Run
./sol

Java

지원 버전: Java 21 · Java 17 (LTS)
Main.java최대 15s
Compile
javac Main.java
Run
java -XX:+UseContainerSupport Main

JavaScript (Node.js / Bun)

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

Kotlin

Main.kt최대 20s
Compile
kotlinc Main.kt -include-runtime -d sol.jar
Run
java -XX:+UseContainerSupport -jar sol.jar

OCaml

sol.ml최대 10s
Compile
ocamlopt -O2 -o sol sol.ml
Run
./sol

PHP

sol.php최대 15s
Run
php sol.php

Python

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

Ruby

sol.rb최대 15s
Run
ruby sol.rb

Rust

지원 버전: Rust 1.77 · Rust 1.80
sol.rs최대 10s
Compile
rustc -O -o sol sol.rs 2>/dev/null
Run
./sol

Swift

sol.swift최대 15s
Compile
swiftc -O -o sol sol.swift
Run
./sol

TypeScript (Deno)

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

Visual Basic

sol.vb최대 15s
Compile
vbnc -out:sol.exe sol.vb > /dev/null
Run
mono sol.exe

아희 (Aheui)

sol.aheui최대 15s
Run
aheui sol.aheui

엄준식

sol.umm최대 15s
Run
umjunsik sol.umm

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