채점 정보

채점 환경 및 지원 언어 정보

채점 방식

  • ICPC — 표준 입출력 비교. 프로그램의 출력을 정답과 비교하여 채점합니다.
  • Special Judge — testlib.h 기반 커스텀 체커로 채점합니다. 여러 정답이 가능한 문제에 사용됩니다.
  • 인터랙티브 — 프로그램이 인터랙터와 표준 입출력으로 질의와 응답을 주고받으며 채점됩니다. 출력 후에는 반드시 flush해야 합니다.
  • 투 스텝 — 같은 프로그램을 두 번 실행합니다. 1단계의 출력이 변환기를 거쳐 2단계의 입력으로 전달되며, 두 단계의 결과를 함께 채점합니다.

지원 언어

시간/메모리 제한은 문제에 명시된 기본 제한에 언어별 배율이 적용됩니다

C
GCC 14.2.0, C17

소스 파일

Main.c

시간 배율

기본

메모리 배율

기본

컴파일 명령어

gcc -o Main Main.c -O2 -Wall -lm -static -std=c17 -fpermissive -DONLINE_JUDGE

실행 명령어

./Main
▸A+B 풀이 코드
#include <stdio.h>

int main() {
    int a, b;
    scanf("%d %d", &a, &b);
    printf("%d\n", a + b);
}
C++
GCC 14.2.0, C++23

소스 파일

Main.cpp

시간 배율

기본

메모리 배율

기본

컴파일 명령어

g++ -o Main Main.cpp -O2 -Wall -lm -static -std=c++23 -DONLINE_JUDGE

실행 명령어

./Main
▸A+B 풀이 코드
#include <iostream>
using namespace std;

int main() {
    int a, b;
    cin >> a >> b;
    cout << a + b << "\n";
}
Python
Python 3.13.5

소스 파일

Main.py

시간 배율

×3 +2초

메모리 배율

×2 +32MB

컴파일 명령어

python3 -m py_compile Main.py

실행 명령어

python3 -W ignore Main.py
▸A+B 풀이 코드
a, b = map(int, input().split())
print(a + b)
PyPy
PyPy3 7.3.19 (Python 3.10)

소스 파일

Main.py

시간 배율

×2 +1초

메모리 배율

×2 +64MB

컴파일 명령어

pypy3 -m py_compile Main.py

실행 명령어

pypy3 -W ignore Main.py
▸A+B 풀이 코드
a, b = map(int, input().split())
print(a + b)
Java
OpenJDK 21

소스 파일

Main.java

시간 배율

×2 +1초

메모리 배율

×2 +16MB

컴파일 명령어

javac -encoding UTF-8 Main.java

실행 명령어

java -Xmx512m -Xss64m -Dfile.encoding=UTF-8 -XX:+UseSerialGC Main
▸A+B 풀이 코드
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        System.out.println(a + b);
    }
}
Kotlin
Kotlin 2.4.20 (JDK 21)

소스 파일

Main.kt

시간 배율

×2 +1초

메모리 배율

×2 +16MB

컴파일 명령어

kotlinc Main.kt -include-runtime -d Main.jar

실행 명령어

java -Xmx512m -Xss64m -Dfile.encoding=UTF-8 -XX:+UseSerialGC -jar Main.jar
▸A+B 풀이 코드
fun main() {
    val (a, b) = readLine()!!.split(" ").map { it.toInt() }
    println(a + b)
}
Rust
Rust 1.98.1

소스 파일

Main.rs

시간 배율

기본

메모리 배율

기본

컴파일 명령어

rustc -O --edition=2024 -o Main Main.rs

실행 명령어

./Main
▸A+B 풀이 코드
use std::io;

fn main() {
    let mut line = String::new();
    io::stdin().read_line(&mut line).unwrap();
    let nums: Vec<i32> = line.split_whitespace().map(|x| x.parse().unwrap()).collect();
    println!("{}", nums[0] + nums[1]);
}
Go
Go 1.27.1

소스 파일

Main.go

시간 배율

기본

메모리 배율

기본

컴파일 명령어

go build -o Main Main.go

실행 명령어

./Main
▸A+B 풀이 코드
package main

import "fmt"

func main() {
    var a, b int
    fmt.Scan(&a, &b)
    fmt.Println(a + b)
}
JavaScript
Node.js 22.23.2

소스 파일

Main.js

시간 배율

×3 +2초

메모리 배율

×2 +32MB

실행 명령어

node Main.js
▸A+B 풀이 코드
const [a, b] = require("fs").readFileSync(0, "utf8").split(" ").map(Number);
console.log(a + b);
TypeScript
TypeScript 7.0.2 (Node.js 22.23.2)

소스 파일

Main.ts

시간 배율

×3 +2초

메모리 배율

×2 +32MB

컴파일 명령어

tsc --noEmit --strict --target es2022 --module nodenext --erasableSyntaxOnly --types node Main.ts

실행 명령어

node --experimental-strip-types Main.ts
▸A+B 풀이 코드
import * as fs from "fs";

const [a, b] = fs.readFileSync(0, "utf8").split(" ").map(Number);
console.log(a + b);
C#
.NET 10 (C# 14)

소스 파일

Main.cs

시간 배율

×2 +1초

메모리 배율

×2 +32MB

컴파일 명령어

dotnet build Main.cs --configuration Release -p:AllowUnsafeBlocks=true

실행 명령어

dotnet Main.dll
▸A+B 풀이 코드
using System;

class Program {
    static void Main() {
        string[] parts = Console.ReadLine().Split(' ');
        int a = int.Parse(parts[0]);
        int b = int.Parse(parts[1]);
        Console.WriteLine(a + b);
    }
}
Pascal
Free Pascal 3.2.2

소스 파일

Main.pas

시간 배율

기본

메모리 배율

기본

컴파일 명령어

fpc -O2 -XS -Xs -Mobjfpc -Sh -oMain Main.pas

실행 명령어

./Main
▸A+B 풀이 코드
program Main;
var
    a, b: Integer;
begin
    ReadLn(a, b);
    WriteLn(a + b);
end.
Lua
Lua 5.4.7

소스 파일

Main.lua

시간 배율

×3 +2초

메모리 배율

×2 +32MB

컴파일 명령어

luac -p Main.lua

실행 명령어

lua Main.lua
▸A+B 풀이 코드
local a, b = io.read("n", "n")
print(a + b)
Ruby
Ruby 3.4.5

소스 파일

Main.rb

시간 배율

×3 +2초

메모리 배율

×2 +32MB

컴파일 명령어

ruby -c Main.rb

실행 명령어

ruby Main.rb
▸A+B 풀이 코드
a, b = gets.split.map(&:to_i)
puts a + b
R
R 4.5.1

소스 파일

Main.R

시간 배율

×3 +2초

메모리 배율

×2 +64MB

실행 명령어

Rscript --vanilla Main.R
▸A+B 풀이 코드
x <- scan(file("stdin"), quiet = TRUE)
cat(x[1] + x[2], "\n", sep = "")
Groovy
Groovy 5.1.3 (JDK 21)

소스 파일

Main.groovy

시간 배율

×2 +1초

메모리 배율

×2 +16MB

컴파일 명령어

groovyc Main.groovy

실행 명령어

java -XX:TieredStopAtLevel=1 -cp groovy-5.1.3.jar:. Main
▸A+B 풀이 코드
def (a, b) = System.in.newReader().readLine().split(" ").collect { it as int }
println(a + b)
Visual Basic
VB.NET (.NET 10)

소스 파일

Main.vb

시간 배율

×2 +1초

메모리 배율

×2 +32MB

컴파일 명령어

dotnet build Main.vb --configuration Release

실행 명령어

dotnet Main.dll
▸A+B 풀이 코드
Imports System

Module Program
    Sub Main()
        Dim parts = Console.ReadLine().Split(" "c)
        Dim a = Integer.Parse(parts(0))
        Dim b = Integer.Parse(parts(1))
        Console.WriteLine(a + b)
    End Sub
End Module
F#
F# (.NET 10)

소스 파일

Main.fs

시간 배율

×2 +1초

메모리 배율

×2 +32MB

컴파일 명령어

dotnet build Main.fs --configuration Release

실행 명령어

dotnet Main.dll
▸A+B 풀이 코드
let parts = System.Console.ReadLine().Split(' ')
let a = int parts.[0]
let b = int parts.[1]
printfn "%d" (a + b)
OCaml
OCaml 5.3.0

소스 파일

Main.ml

시간 배율

기본

메모리 배율

기본

컴파일 명령어

ocamlopt -O2 -o Main Main.ml

실행 명령어

./Main
▸A+B 풀이 코드
let () =
    let a, b = Scanf.scanf " %d %d" (fun a b -> (a, b)) in
    Printf.printf "%d\n" (a + b)
Fortran
GNU Fortran 14.2 (Fortran 2018)

소스 파일

Main.f90

시간 배율

기본

메모리 배율

기본

컴파일 명령어

gfortran -O2 -static -o Main Main.f90

실행 명령어

./Main
▸A+B 풀이 코드
program main
    implicit none
    integer :: a, b
    read (*, *) a, b
    print "(I0)", a + b
end program main
COBOL
GnuCOBOL 3.2

소스 파일

Main.cob

시간 배율

기본

메모리 배율

기본

컴파일 명령어

cobc -x -O2 -o Main Main.cob

실행 명령어

./Main
▸A+B 풀이 코드
       IDENTIFICATION DIVISION.
       PROGRAM-ID. MAIN.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 LINE-IN PIC X(32).
       01 A PIC 9(9).
       01 B PIC 9(9).
       01 C PIC Z(9)9.
       PROCEDURE DIVISION.
           ACCEPT LINE-IN.
           UNSTRING LINE-IN DELIMITED BY ALL SPACE INTO A B.
           COMPUTE C = A + B.
           DISPLAY FUNCTION TRIM(C).
           STOP RUN.
Bash
GNU Bash 5.2

소스 파일

Main.sh

시간 배율

×3 +2초

메모리 배율

×2 +32MB

컴파일 명령어

bash -n Main.sh

실행 명령어

bash Main.sh
▸A+B 풀이 코드
read a b
echo $((a + b))
GolfScript
GolfScript (darrenks, Ruby 3.4)

소스 파일

Main.gs

시간 배율

×3 +2초

메모리 배율

×2 +32MB

실행 명령어

ruby golfscript.rb Main.gs
▸A+B 풀이 코드
~+n
Perl
Perl 5.40

소스 파일

Main.pl

시간 배율

×3 +2초

메모리 배율

×2 +32MB

컴파일 명령어

perl -c Main.pl

실행 명령어

perl Main.pl
▸A+B 풀이 코드
my ($a, $b) = split ' ', <STDIN>;
print $a + $b, "\n";
Awk
mawk 1.3.4

소스 파일

Main.awk

시간 배율

×3 +2초

메모리 배율

×2 +32MB

실행 명령어

awk -f Main.awk
▸A+B 풀이 코드
{ print $1 + $2 }
PHP
PHP 8.5.8

소스 파일

Main.php

시간 배율

×3 +2초

메모리 배율

×2 +32MB

컴파일 명령어

php -l Main.php

실행 명령어

php Main.php
▸A+B 풀이 코드
<?php
[$a, $b] = explode(' ', trim(fgets(STDIN)));
echo $a + $b, "\n";
Tcl
Tcl 8.6.16

소스 파일

Main.tcl

시간 배율

×3 +2초

메모리 배율

×2 +32MB

실행 명령어

tclsh Main.tcl
▸A+B 풀이 코드
gets stdin line
lassign $line a b
puts [expr {$a + $b}]
Dart
Dart 3.13.4

소스 파일

Main.dart

시간 배율

×2 +1초

메모리 배율

×2 +32MB

컴파일 명령어

dart compile exe Main.dart -o Main

실행 명령어

./Main
▸A+B 풀이 코드
import 'dart:io';

void main() {
    var parts = stdin.readLineSync()!.split(' ');
    print(int.parse(parts[0]) + int.parse(parts[1]));
}
Swift
Swift 6.4.0

소스 파일

Main.swift

시간 배율

기본

메모리 배율

기본

컴파일 명령어

swiftc -O -o Main Main.swift

실행 명령어

./Main
▸A+B 풀이 코드
let parts = readLine()!.split(separator: " ").map { Int($0)! }
print(parts[0] + parts[1])
Zig
Zig 0.16.0

소스 파일

Main.zig

시간 배율

기본

메모리 배율

기본

컴파일 명령어

zig build-exe Main.zig -O ReleaseSmall -femit-bin=Main

실행 명령어

./Main
▸A+B 풀이 코드
const std = @import("std");

pub fn main(init: std.process.Init) !void {
    var in_buf: [1024]u8 = undefined;
    var stdin = std.Io.File.stdin().reader(init.io, &in_buf);
    const line = (try stdin.interface.takeDelimiter('\n')) orelse "";
    var it = std.mem.tokenizeScalar(u8, line, ' ');
    const a = try std.fmt.parseInt(i64, it.next().?, 10);
    const b = try std.fmt.parseInt(i64, it.next().?, 10);
    var out_buf: [64]u8 = undefined;
    var stdout = std.Io.File.stdout().writer(init.io, &out_buf);
    try stdout.interface.print("{d}\n", .{a + b});
    try stdout.interface.flush();
}
Nim
Nim 2.2.12

소스 파일

Main.nim

시간 배율

기본

메모리 배율

기본

컴파일 명령어

nim c -d:release --out:Main Main.nim

실행 명령어

./Main
▸A+B 풀이 코드
import strutils

let parts = readLine(stdin).split(' ')
echo parseInt(parts[0]) + parseInt(parts[1])
Ada
GNAT 14.2 (Ada 2022)

소스 파일

main.adb

시간 배율

기본

메모리 배율

기본

컴파일 명령어

gnatmake -O2 -o Main main.adb -largs -static

실행 명령어

./Main
▸A+B 풀이 코드
with Ada.Text_IO; use Ada.Text_IO;
with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;

procedure Main is
    A, B : Integer;
begin
    Get(A);
    Get(B);
    Put(A + B, Width => 0);
    New_Line;
end Main;
Objective-C
GCC 14.2 Objective-C (GNU runtime)

소스 파일

Main.m

시간 배율

기본

메모리 배율

기본

컴파일 명령어

gcc -O2 -static -std=gnu17 -x objective-c -o Main Main.m -lobjc

실행 명령어

./Main
▸A+B 풀이 코드
#import <stdio.h>
#import <objc/Object.h>

@interface Adder : Object
+ (int)add:(int)a to:(int)b;
@end

@implementation Adder
+ (int)add:(int)a to:(int)b {
    return a + b;
}
@end

int main() {
    int a, b;
    scanf("%d %d", &a, &b);
    printf("%d\n", [Adder add:a to:b]);
    return 0;
}
Algol 68
Algol 68 Genie 3.1.2

소스 파일

Main.a68

시간 배율

×3 +2초

메모리 배율

×2 +32MB

컴파일 명령어

a68g --check Main.a68

실행 명령어

a68g Main.a68
▸A+B 풀이 코드
BEGIN
    INT a, b;
    read((a, b));
    print((whole(a + b, 0), new line))
END
Assembly (x86-64 NASM)
NASM 2.16.03, x86-64 Linux (no libc)

소스 파일

Main.asm

시간 배율

기본

메모리 배율

기본

컴파일 명령어

nasm -f elf64 -o Main.o Main.asm && ld -o Main Main.o

실행 명령어

./Main
▸A+B 풀이 코드
section .bss
    buf resb 32

section .text
global _start

_start:
    mov rax, 0
    mov rdi, 0
    mov rsi, buf
    mov rdx, 32
    syscall

    mov rsi, buf
    call read_int
    mov r12, rax
    call read_int
    add rax, r12

    mov rdi, buf + 31
    mov byte [rdi], 10
    mov rbx, 10
.digit:
    dec rdi
    xor rdx, rdx
    div rbx
    add dl, '0'
    mov [rdi], dl
    test rax, rax
    jnz .digit

    mov rax, 1
    mov rsi, rdi
    mov rdx, buf + 32
    sub rdx, rdi
    mov rdi, 1
    syscall

    mov rax, 60
    xor rdi, rdi
    syscall

; rsi가 가리키는 위치부터 공백을 건너뛰고 십진수 하나를 rax로 읽는다
read_int:
    xor rax, rax
.skip:
    movzx ecx, byte [rsi]
    cmp cl, '0'
    jb .next
    cmp cl, '9'
    ja .next
    jmp .parse
.next:
    inc rsi
    jmp .skip
.parse:
    movzx ecx, byte [rsi]
    cmp cl, '0'
    jb .done
    cmp cl, '9'
    ja .done
    sub cl, '0'
    imul rax, 10
    add rax, rcx
    inc rsi
    jmp .parse
.done:
    ret
Text

소스 파일

Main.txt

시간 배율

기본

메모리 배율

기본

실행 명령어

cat Main.txt