채점 정보
채점 방식
- ICPC — 표준 입출력 비교. 프로그램의 출력을 정답과 비교하여 채점합니다.
- Special Judge — testlib.h 기반 커스텀 체커로 채점합니다. 여러 정답이 가능한 문제에 사용됩니다.
- 인터랙티브 — 프로그램이 인터랙터와 표준 입출력으로 질의와 응답을 주고받으며 채점됩니다. 출력 후에는 반드시 flush해야 합니다.
- 투 스텝 — 같은 프로그램을 두 번 실행합니다. 1단계의 출력이 변환기를 거쳐 2단계의 입력으로 전달되며, 두 단계의 결과를 함께 채점합니다.
지원 언어
시간/메모리 제한은 문제에 명시된 기본 제한에 언어별 배율이 적용됩니다
소스 파일
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);
}
소스 파일
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";
}
소스 파일
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)
소스 파일
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)
소스 파일
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);
}
}
소스 파일
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)
}
소스 파일
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]);
}
소스 파일
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)
}
소스 파일
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);
소스 파일
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);
소스 파일
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);
}
}
소스 파일
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.
소스 파일
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)
소스 파일
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
소스 파일
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 = "")
소스 파일
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)
소스 파일
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
소스 파일
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)
소스 파일
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)
소스 파일
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
소스 파일
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.
소스 파일
Main.sh시간 배율
×3 +2초
메모리 배율
×2 +32MB
컴파일 명령어
bash -n Main.sh
실행 명령어
bash Main.sh
▸A+B 풀이 코드
read a b
echo $((a + b))
소스 파일
Main.pl시간 배율
×3 +2초
메모리 배율
×2 +32MB
컴파일 명령어
perl -c Main.pl
실행 명령어
perl Main.pl
▸A+B 풀이 코드
my ($a, $b) = split ' ', <STDIN>;
print $a + $b, "\n";
소스 파일
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";
소스 파일
Main.tcl시간 배율
×3 +2초
메모리 배율
×2 +32MB
실행 명령어
tclsh Main.tcl
▸A+B 풀이 코드
gets stdin line
lassign $line a b
puts [expr {$a + $b}]
소스 파일
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]));
}
소스 파일
Main.swift시간 배율
기본
메모리 배율
기본
컴파일 명령어
swiftc -O -o Main Main.swift
실행 명령어
./Main
▸A+B 풀이 코드
let parts = readLine()!.split(separator: " ").map { Int($0)! }
print(parts[0] + parts[1])
소스 파일
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();
}
소스 파일
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])
소스 파일
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;
소스 파일
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;
}
소스 파일
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
소스 파일
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
소스 파일
Main.txt시간 배율
기본
메모리 배율
기본
실행 명령어
cat Main.txt