GSHS Judge ON FAQ

Q채점을 위해 사용되는 컴파일러와 각 컴파일러의 옵션은 어떤것입니까?
A:채점 시스템은 Ubuntu Linux에서 구동됩니다. 현재 C/C++ 코드 컴파일을 위해 GNU GCC/G++를 사용하고 있으며,
pascal 코드 컴파일을 위해 Free Pascal 을, 그리고 Java 코드 컴파일을 위해 sun-java-jdk1.6를 사용합니다.
컴파일을 위해서 다음과 같은 옵션을 사용합니다:

C: gcc Main.c -o Main -ansi -fno-asm -O2 -Wall -lm --static
C++: g++ Main.c -o Main -ansi -fno-asm -O2 -Wall -lm --static
Pascal: fpc Main.pas -oMain -O1 -Co -Cr -Ct -Ci
Java: javac Main.java

현재 사용되는 각 컴파일러의 버전:
gcc/g++ (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
Free Pascal Compiler version 2.4.4-3.1 [2012/01/04] for i386
java version "1.6.0_24"

Q입력과 출력은 어떻게 받나요?
A:채점을 위해서 입력은 stdin('Standard Input')을 통해 받게 되며, stdout('Standard Output')에 출력하게 됩니다.
자세하게 이야기 하자면, 입력을 위해서는 'scanf(C)/cin(C++)'을, 출력을 위해서 'printf(C)/cout(C++)' 을 사용하게 됩니다
사용자가 작성한 프로그램은 파일을 읽고 쓰는 것이 금지 되어 있으며, 이러한 경우, 실행오류 : 결과보기 를 받게 됩니다.
다음은 1010번 문제를
C++를 이용하여 푼 예시코드입니다
#include <iostream>
using namespace std;
int main(){
	int a;
	cin >> a;
	cout << a << endl;
	return 0;
}
C를 이용하여 문제를 짠 예시 코드입니다
#include <stdio.h>
int main(){
	int a;
	scanf("%d",&a);
	printf("%d\n",a);
	return 0;
}
마지막으로 Java를 이용한 코드입니다
import java.util.*;
public class Main{
	public static void main(String args[]){
		Scanner cin = new Scanner(System.in);
		int a;
		cin.hasNext();
		a = cin.nextInt();
		System.out.println(a);
	}
}
Q제가 테스트 해보았을 떄는 잘 돌아가는데 결과로 문법오류가 뜹니다. 왜그럴까요?
A:일반적으로 MS-VC++를 사용하였을 경우에 발생하며, GNU와 MS-VC++에서 생기는 차이점에 의하여 발생합니다. 예를 들면 다음과 같습니다:
Q채점 결과의 뜻은 무엇인가요?
A:채점결과들의 의미는 다음과 같습니다:

대기중 : 채점이 밀려서 아직 채점이 완료 되지 않은 대기 상태. 일반적으로 1분 이내에 채점이 됩니다.

재채점 대기: 테스트 데이터를 새로이 고치거나 했을 경우, 해당 제출 코드를 다시 채점하게 되어 대기 상태로 들어가는 경우.

컴파일 : 채점을 하기 위해 컴파일 하는 중에 나타납니다.

채점중: 채점이 진행되고 있음을 의미합니다.

통과 : 제출한 프로그램이 모든 테스트 데이터를 통과했음을 뜻합니다.

통과제출번호: 번호(100%): 제출번호와 사용자가 제출한 유사도를 보여줍니다.

표현오류 : 출력 결과가 테스트 데이터와 유사하나, 공백, 빈 줄과 같은 사소한 문제로 인해 출력 결과가 일치하지 않는 경우입니다.

틀림 : 출력 결과가 테스트 데이터와 다른 경우 입니다.

틀림 : 결과보기 83% : 의미는 83%가 틀린답이라는 이야기 입니다. 높을 수록 다 틀렸다는 이야기^^;

시간초과 : 제출한 프로그램이 제한된 시간이내에 끝나지 않은 경우를 뜻합니다.

메모리초과 : 제출한 프로그램이 허용된 메모리보다 많은 메모리를 사용했을 경우를 뜻합니다.

출력초과: 예상하는 보다 많은 출력이 발생한 경우 입니다. 일반적으로 프로그램이 무한 루프에 빠졌을 경우에 일어납니다.
현재 채점 시스템에서 출력 제한은 1메가 바이트로 제한됩니다.

실행오류 : 결과보기 : 실행 도중에 'segmentation fault','floating point exception'
'used forbidden functions', 'tried to access forbidden memories' 등의 에러가 발생하여서 실행도중에 프로그램이 종료된 경우 입니다.

문법오류 : 컴파일러가 제출한 소스코드를 컴파일 하지 못한 경우입니다. 물론 경고 메시지(warning message)는 에러 메시지로 간주하지 않습니다.
채점 결과를 클릭하면 실제 에러 메시지를 볼 수 있습니다.

Q온라인 대회에 어떻게 참가하죠?
A:본 시스템에서 연습문제들을 제출 할 수 있게 되었습니까? 가능하다면 당신이 사용하는 계정이 온라인 대회에 사용하게 될 계정이 됩니다.
다시 말해서, 그 계정을 이용하여 대회에 참가하면 됩니다. 만약 참가 할 수 없다면, 회원가입하기 메뉴에서 계정을 생성하세요.


  • 참고도서
  • 1.프로그래밍 대회에서 배우는 알고리즘 문제 해결 전략 세트

    2. 문제로 풀어보는 알고리즘: 프로그래밍 트레이닝 Q&A

    3.  Programming Challenges : 알고리즘 트레이닝 북

    4. 알고리즘 : FOUNDATION of ALGORITHMS USING C++ PSEDOCODE

    5.  알고리즘 트레이닝으로 배우는 코드 단축 기법 Short Coding

    6. 뇌를 자극하는 C++ STL

    7. The art of computer programming 시리즈

    8.  프로그래밍 콘테스트 챌린징

     

        
  • 국내 온라인 저지사이트
  • 1. koistudy.net : 경기과학고 온라인 저지 사이트

    2. acmicpc.net : Baeckjoon 온라인 저지 사이트

    3. dovelet.com : 개인운영 사이트 - 모든 문제를 다 풀려면 약간의 비용이 발생

    4. codeup.kr : 배준호선생님 온라인저지 사이트

    4. koi.codingfun.net : 장원영선생님 온라인저지 사이트

        
  • 해외 온라인 저지 사이트
  • 1. codeforces : 러시아 온라인 저지사이트

    2. USACO : 미국 온라인 저지 사이트

    3. PKU : 중국 온라인 저지 사이트

        
  • 참고 사이트
  • 1.c++ reference site

    2. cplusplus.com


    V1.9.9.0