도움

FAQS

Q:이 채점시스템에서 사용하는 코드 컴파일 옵션은?
A:채점 시스템은 Ubuntu Linux기반으로. GNU GCC/G++for C/C++ compile, Free Pascal 파스칼 그리고 openjdk-7-jdk 자바. 컴파일옵션:

C: gcc Main.c -o Main -fno-asm -Wall -lm --static -std=c99 -DONLINE_JUDGE
C++: g++ -fno-asm -Wall -lm --static -std=c++11 -DONLINE_JUDGE -o Main Main.cc
Pascal: fpc Main.pas -oMain -O1 -Co -Cr -Ct -Ci
Java: javac -J-Xms32m -J-Xmx256m Main.java
*Java 코드를 실행하고 채점하는 경우 +2초, +512MB 가 추가됩니다.

컴파일 버전:

gcc gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04)
glibc Ubuntu GLIBC 2.31-0ubuntu9.2
FPC Free Pascal Compiler version 3.0.4+dfsg-23 [2019/11/25] for x86_64
openjdk openjdk 1.7.0_151
python Python 3.8.10

Q:코드 작성시 데이터 입출력은 어떻게 하나요?
A: stdin('표준입력')에서 입력받고 stdout('표준출력')으로 출력한다.
예를 들어, C언어에서는 'scanf', C++ 언어에서는 'cin' 을 이용해서 stdin(입력)을 읽어들입니다. 또한, C언어에서는 'printf', C++언어에서는 'cout'을 이용해 stdout(출력)으로 출력할 수 있습니다.
파일 입출력을 사용한 코드를 제출하는 경우에는 "Runtime Error(실행오류)"를 받게된다.

1037에 대한 예시코드

C++:


#include <iostream>
using namespace std;
int main(){
    int a,b;
    while(cin >> a >> b)
        cout << a+b << endl;
    return 0;
}

C:

#include <stdio.h>
int main(){
    int a,b;
    while(scanf("%d %d",&a, &b) != EOF)
        printf("%d\n",a+b);
    return 0;
}

PASCAL:

program p1037(Input,Output); 
var 
  a,b:Integer; 
begin 
   while not eof(Input) do 
     begin 
       Readln(a,b); 
       Writeln(a+b); 
     end; 
end.


Java:

import java.util.*;
public class Main{
	public static void main(String args[]){
		Scanner cin = new Scanner(System.in);
		int a, b;
		while (cin.hasNext()){
			a = cin.nextInt(); b = cin.nextInt();
			System.out.println(a + b);
		}
	}
}

python3 (.py)

import io
import sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8')
for line in sys.stdin:
    a = line.split()
    print(int(a[0]) + int(a[1]))
Q: 문제가 없는데 컴파일 에러가 발생한다?
A: GNU 와 MS-VC++ 는 다음과 같이 다릅니다. 내용:
main()는 int main()으로 해야 합니다.
"for(int i=0...){...}" 와 같이 선언되어있는 상태인데 for 코드블록 밖에서 i를 참조되는 경우
itoa는 ANSI 함수가 아니다.
__int64 는 VC에서만, long long 을 사용해야 합니다.
VC코드를 그대로 사용하고 싶다면 #define __int64 long long 
Q:채점 코드 제출 후 받게 되는 메시지들은 어떤 의미인가요?
A:채점 코드 제출 후 받게 되는 메시지들의 의미는 다음과 같습니다.
채점 대기중 코드가 제출되고 채점을 기다리고 있는 상태입니다. 대부분의 경우 조금만 기다리면 채점이 진행됩니다.
재채점 대기중 채점 데이터가 갱신되어 재채점을 기다리고 있는 상태입니다.
컴파일중 제출된 코드를 컴파일 중이라는 의미입니다.
채점중 채점이 진행되고 있는 상태라는 의미입니다.
모두 맞음 정답입니다.
출력형식 다름 출력된 결과가 문제에서 출력해야하는 출력형식과 다르게 출력되었다는 의미입니다. 문제의 출력형식에서 요구하는 형식과 똑같아야 합니다. 답 출력 후 출력형식에는 없는 공백문자나 줄 바꿈이 더 출력되지는 않았는지 확인해 보아야 합니다.
틀림 틀린 답을 출력한 것을 의미합니다. 채점 시스템에 등록하는 채점 데이터들은 외부로 공개하지 않는 것이 일반적입니다. 제출한 코드가 틀린 답을 출력하는 경우가 어떤 경우일지 더 생각해 보아야 합니다. ;-).
시간제한 초과 제한시간 이내에 답을 출력하지 못했다는 것을 의미합니다. 좀 더 빠르면서도 정확한 결과를 출력하도록 소스 코드를 수정해야합니다.
메모리제한 초과 제출한 프로그램이 제한된 메모리용량보다 더 많은 기억공간을 사용했다는 것을 의미합니다. 일반적으로는 메모리를 더 적게 사용하는 코드로 수정해야합니다.
출력제한 초과 제출한 프로그램이 제한된 출력량 이상으로 결과를 출력했다는 것을 의미합니다. 대부분의 경우 무한 반복 실행 구조에 의해 발생합니다. 채점 시스템의 출력 제한 바이트 수는 1M bytes 입니다.
실행중 에러 제출한 프로그램이 실행되는 도중에 오류가 발생했다는 것을 의미합니다. 예를 들어, 'segmentation fault(허용되지 않는 메모리 영역에 접근하는 경우: 배열 인덱스 초과 등)','floating point exception(실수 계산 예외: 0 으로 나누는 등)','used forbidden functions(제한된 함수를 사용한 경우: 파일 처리 함수 등이 사용된 경우 등)', 'tried to access forbidden memories(허용되지 않는 시스템 메모리 영역 등에 접근하는 경우 등)' 등에 의해 발생합니다.
컴파일 에러 제출한 소스코드를 ANSI 표준(gcc/g++/gpc) 컴파일러로 컴파일하지 못했다는 것을 의미합니다. 컴파일 오류 메시지가 아닌 오류 경고(warning)는 이 메시지를 출력하지 않습니다. 메시지 부분을 누르면 컴파일 오류 메시지를 확인할 수도 있습니다.
Q:온라인 대회(Online Contests)는 어떻게 참가하나요?
A:회원가입부터 하세요 회원가입