그룹

특정 권한이 부여된 사용자(예 : 교사, 교수 등)는 자신의 그룹을 만들 수 있습니다. 예를 들어 교사는 강좌에 대한 그룹을 만든 다음 이 그룹에 주제와 학생을 추가할 수 있습니다. 또 다른 예로 그룹을 팁 기능으로 사용할 수 있습니다.

역할과 권한을 적절하게 설정하면 그룹을 공개 또는 비공개로 설정할 수 있습니다.

기본 그룹은 "system"입니다. Coding Story그룹이름에 직접 액세스하는 사용자는 이 그룹에 액세스하게 됩니다. Coding Story 로고를 클릭하면 모든 그룹에서 "system" 그룹으로 다시 이동합니다.

각 영역의 문제 은행, 토론, 교육 및 경쟁은 독립적이고 자율적입니다.

컴파일러 버전, 파라미터

Coding Story는 제출된 문제의 풀이를 위해 HydroJudge에서 제공하는 Judge를 사용하며 컴파일 매개변수는 다음과 같습니다.

  • Bash(bash)
    /bin/bash foo.sh
  • C(c)
    /usr/bin/gcc -Wall --std=c99 -o foo foo.c -lm
  • C++(cc)
    /usr/bin/g++ -Wall -std=c++14 -o foo foo.cc -lm -I/include
  • C++98(cc.cc98)
    /usr/bin/g++ -Wall -std=c++98 -o foo foo.cc -lm -I/include
  • C++98(O2)(cc.cc98o2)
    /usr/bin/g++ -Wall -std=c++98 -o foo foo.cc -lm -O2 -I/include
  • C++11(cc.cc11)
    /usr/bin/g++ -Wall -std=c++11 -o foo foo.cc -lm -I/include
  • C++11(O2)(cc.cc11o2)
    /usr/bin/g++ -Wall -std=c++11 -o foo foo.cc -lm -O2 -I/include
  • C++14(cc.cc14)
    /usr/bin/g++ -Wall -std=c++14 -o foo foo.cc -lm -I/include
  • C++14(O2)(cc.cc14o2)
    /usr/bin/g++ -Wall -std=c++14 -o foo foo.cc -lm -O2 -I/include
  • C++17(cc.cc17)
    /usr/bin/g++ -Wall -std=c++17 -o foo foo.cc -lm -I/include
  • C++17(O2)(cc.cc17o2)
    /usr/bin/g++ -Wall -std=c++17 -o foo foo.cc -lm -O2 -I/include
  • Pascal(pas)
    /usr/bin/fpc -O2 -o/w/foo foo.pas
  • Java(java)
    /usr/bin/bash -c "javac -d /w -encoding utf8 ./Main.java && jar cvf Main.jar *.class >/dev/null"
  • Kotlin(kt)
    echo "Invalid language selection"
  • Kotlin/JVM(kt.jvm)
    kotlinc -include-runtime -d foo.jar foo.kt
  • Python(py)
    /usr/bin/python -c "import py_compile; py_compile.compile('/w/foo.py', '/w/foo', doraise=True)"
  • Python 2(py.py2)
    /usr/bin/python -c "import py_compile; py_compile.compile('/w/foo.py', '/w/foo', doraise=True)"
  • Python 3(py.py3)
    /usr/bin/python3 -c "import py_compile; py_compile.compile('/w/foo.py', '/w/foo', doraise=True)"
  • PyPy3(py.pypy3)
    /bin/bash -c "/usr/bin/pypy3 -c \"import py_compile; py_compile.compile('/w/foo.py', '/w/foo', doraise=True)\" && mv foo.py foo"
  • PHP(php)
    /usr/bin/php foo.php
  • Rust(rs)
    /usr/bin/rustc -O -o /w/foo /w/foo.rs
  • Haskell(hs)
    /usr/bin/ghc -O -outputdir /tmp -o foo foo.hs
  • NodeJS(js)
    /usr/bin/node /w/foo.js
  • Golang(go)
    /usr/bin/go build -o foo foo.go
  • Ruby(rb)
    /usr/bin/ruby foo.rb
  • C#(cs)
    /usr/bin/mcs -optimize+ -out:/w/foo /w/foo.cs

제한

Coding Story 체점기는 프로세스의 CPU 시간을 사용하여 소요 시간을 계산하며, 시간은 문제의 평가 지점에서 지정한 시간으로 제한됩니다.

Coding Story 리뷰 머신은 프로세스 가상 메모리와 물리적 메모리의 합을 사용하여 메모리 공간 소비를 계산합니다. 메모리 공간은 기본적으로 256Mb로 제한되어 있으며, 질문에 구제적으로 명시한 경우 질문의 평가점에서 지정한 메모리 공간으로 제한됩니다.

입출력

별도로 지정하지 않는 한 Coding Story는 표준 입력 및 출력(콩솔 입력 및 출력, 화면 입력 및 출력, Standard I/O)을 사용합니다.

채점 현황

  • Waiting 대기중 : 평가 요청이 Judge 시스템에서 이전 평가 요청을 대기하고 있습니다.
  • Fetched 이전중 : 평가 요청에 대해 Judge 시스템에서 평가하기 위해 준비중입니다.
  • Compiling검토중 : 평가 요청에 대해 Judge 시스템에서 컴파일 중입니다.
  • Judging 평가중 : 평가 요청에 대해 Judge 시스템에서 컴파일된 결과를 평가중입니다.
  • Accepted 통과 : 평가 요청에 대한 프로그램 검토가 완료되었으며, 평가에 대한 결과가 정확합니다.
  • Wrong Answer 실패 : 평가 요쳥에 대한 프로그램 출력이 표준 답안과 일치하지 않습니다(줄 끝의 공백 및 파일 끝의 빈 줄 제외).
  • Time Limit Exceeded 실패 : 프로그램 실행 시간이 문제에 설정된 제한시간을 초과하였습니다.
  • Memory Limit Exceeded 실패 : 프로그램 실행 메모리 사용이 문제에 설정된 메모리 제한을 초과하였습니다.
  • Runtime Error 실패 : 프로그램 런타임 오류(예 : 범위를 벗어난 배열, 0으로 나누기, 작업 오버플로, 스택 오버플로, 잘못된 포인터 등)
  • Compile Error 실패 : 컴파일 오류(예 : 문법에 맞지 않는 프로그래밍 기술)
  • System Error 오류 : 시스템 오류(이 문제가 발생하면 바로 토론 영역에 피드백을 제공해주세요.)
  • Canceled 기타 : 평가를 취소하였습니다.
  • Unknown Error 기타 : 알수 없는 오류
  • Ignored 기타 : 무시됨
"성적 취소됨"이라는 단어는 관리자가 이 기록을 수동으로 취소한 것을 의미하며, 이는 서비스 약관 위반할 수 있습니다. 예를 들어 코드가 다른 사용자의 코드와 매우 유사한 것으로 판단되는 경우 입니다.

컴파일 에러

다음과 같은 상황에서 발생할 수 있습니다.

  • 1. 제출 시 잘못된 프로그래밍 언어를 선택한 경우
  • 2. Java의 메인 클래스 이름인 "Main"을 사용하지 않은 경우
  • 3. C/C++의 경우에는 아래를 참고하세요.
  • 4. 일반적인 컴파일 오류

C/C++의 컴파일 오류 상황

  • 1. __int64는 GNU C++에서 long long 타입으로 작성해야 합니다.
  • 2. main() 함수의 return은 void가 아닌 int로 정의되어야 합니다.(예 : int main())
  • 3. for 문의 변수 i는 "for (int i = 0 ...) { ... }"과 같은 문 이후에 유효하지 않습니다.
  • 4. itoa()는 일반적인 ANSI 함수가 아닙니다(표준 C/C++에는 itoa() 함수가 없습니다).
  • 5. printf()에서 %lf 형식을 잘못 사용하였습니다.

학습

Coding Story은 학습 계획을 수립하기 위해 몇 가지 주제를 선정하였습니다. 참가하려면 탐색 모음에서 "학습"을 클릭하세요.

대회

다양한 대회 형식에 따라 제출 및 순위 규칙이 다릅니다.

  • ACM/ICPC
    • 모든 문제는 제출 후 즉시 평가되며 이에 따라 실시간으로 등수를 확인할 수 있습니다.
      (단, 대회 설정에 따라 다를 수 있습니다.)
    • 주어진 시간 내에 정해진 문제를 얼마나 빠르게, 많이 풀는 것이 점수와 연관이 있습니다.
    • 순위는 푼 문제 수와 패널티 수치로 결정됩니다.
    • 패널티 수치는 문제를 하나 풀때마다 패널티 수치를 받게 되며 문제를 일찍 풀었을 수록, 오답을 제출한 수가 적을 수록 패널티 수치는 작습니다.
    • 만약, 푼 문제 수가 더 많거나, 푼 문제 수가 같고 패널티가 더 적으면 높은 순위를 갖게 됩니다.
  • OI
    • 모든 문제는 마지막 제출을 기준으로 하며, 특히 컴파일 오류가 발생하지 않도록 주의해야 합니다.
    • 순위 규칙은 총점이 높은 제출물을 기준으로 우선 순위에 배정되며, 총점이 같은 참가자는 동일한 순위에 배정됩니다.
  • IOI(Strict)
    • 기본적으로 OI규칙과 동일하지만, IOI는 대회가 완료될 때 점수판이 종료됩니다.
    • 각 질문의 순위 점수는 모든 제출물 중 각 하위 작업에 대한 참가자의 최대 점수의 합이 됩니다.
  • Ledo
    • 참가자는 문제를 여러번 제출할 수 있으며, 실시간 평가으로 평가 결과를 확인할 수 있습니다.
    • 참가자가 동일한 문제를 여러번 제출할 경우 점수는 차감되며 점수판에는 사용자의 최고 점수가 표시됩니다.
    • 각 질문의 최종 점수 판정 : $s \times \max(0.95^{n}, 0.7)$ 。$s,n$ 은 각각 이 점수와 제출 전 시도 횟수를 나타냅니다.
    • 순위는 위 점수 판정 결과에 따라 높은 점수에서 낮은 점수로 순위를 책정합니다.

주제 설명에 따라 시간 및 공간 제한이 있으며, 기본 제한 사항은 제한을 참고하세요. 제한

정답률

정답율의 계산은 시스템 부하가 걸리며 Coding Story에서는 정답률을 제공하거나 인식하지 않습니다.

RP 알고리즘

RP는 질문, 활동, 대회 등을 통해 획득할 수 있습니다.

알고리즘 난이도

Coding Story의 문제 난이도는 제출 횟수, 정답률, 제출 시간 및 각 제출의 평가 결과를 기반으로 알고리즘적으로 계산됩니다.

따라서, 다음 사항에 유의하시기 바랍니다.

  • 0. 일반적으로 난이도 값이 클수록 문제의 난이도가 높아집니다.
  • 1. 새로운 문제의 난이도는 정확하지 않을 수 있으며, 문제가 많이 제출되면 난이도가 더욱 정확해 집니다.
  • 2. 평가를 위해 제출된 사용자 코드의 평가 결과가 빠를 수록 문제의 난이도에 더 큰 영향을 미칩니다.
  • 3. 문제의 난이도는 알고리즘에 의해 계산되므로 부정확한 결과가 나올 수 있습니다.

데이터셋 형식

자세한 내용은 문서를 참조하세요.

ID/PW 분실

로그인이 되지 않을 경우, 아이디와 패스워드를 곰곰히 생각해보세요... ;;;

만약, 그래도 로그인이 되지 않는 경우 비밀번호 재설정 또는 ID 찾기를 이용해보세요.

Markdown

Coding Story의 Markdown 영역은 CommonMark을 사용하고 다음 기능을 확장합니다.

  • Katex 구문을 기반으로 한 수학 공식을 지원합니다.
  • 사용자 지정 : @[](/user/uid)
  • 텍스트 강조 : ==text==
  • 이미지 크기 : ![alt](url =100x100)
  • 동영상 삽입 : @[video](https://.../a.mp4)
  • 외부 동영상 : @[bilibili](BVxxx)
  • 외부 PDF : @[pdf](https://.../a.pdf)
  • 질문/대회/과제/토론에서 file://파일명을 사용하면 해당 첨부 파일을 참조할 수 있습니다.(추천!)
  • HTML 태그의 하위 집합 사용을 지원합니다.