zoukankan      html  css  js  c++  java
  • HUSTOJ增加其他语言出现RuntimeError解决办法

    HUSTOJ增加其他语言,如Python、Java、Pascal等等,如果程序是正确的,却报运行错误,添加okcall就行。

    具体错误可以看日志:

     [ERROR] A Not allowed system call: runid:运行编号 callid:id号
    TO FIX THIS , ask admin to add the CALLID into corresponding LANG_XXV[] located at okcalls32/64.h ,and recompile judge_client

    修改评测机okcall文件(如core/judge_client/okcall64.h),给对应的语言增加callid:后面的id号即可,尽量不用加在开头或者结尾,有些数组首尾是0的,可能有什么特别的含义呢!

    CV是C语言;PV是Pascal语言;JV是Java语言;YV是Python语言……如果搞不清楚哪个V对应哪个语言,请看judge_client.cc源代码:

    void init_syscalls_limits(int lang) {
        int i;
        memset(call_counter, 0, sizeof(call_counter));
        if (DEBUG)
            write_log("init_call_counter:%d", lang);
        if (record_call) { // C & C++
            for (i = 0; i < call_array_size; i++) {
                call_counter[i] = 0;
            }
        } else if (lang <= 1) { // C & C++
            for (i = 0; i==0||LANG_CV[i]; i++) {
                call_counter[LANG_CV[i]] = HOJ_MAX_LIMIT;
            }
        } else if (lang == 2) { // Pascal
            for (i = 0; i==0||LANG_PV[i]; i++)
                call_counter[LANG_PV[i]] = HOJ_MAX_LIMIT;
        } else if (lang == 3) { // Java
            for (i = 0; i==0||LANG_JV[i]; i++)
                call_counter[LANG_JV[i]] = HOJ_MAX_LIMIT;
        } else if (lang == 4) { // Ruby
            for (i = 0; i==0||LANG_RV[i]; i++)
                call_counter[LANG_RV[i]] = HOJ_MAX_LIMIT;
        } else if (lang == 5) { // Bash
            for (i = 0; i==0||LANG_BV[i]; i++)
                call_counter[LANG_BV[i]] = HOJ_MAX_LIMIT;
        } else if (lang == 6) { // Python
            for (i = 0; i==0||LANG_YV[i]; i++)
                call_counter[LANG_YV[i]] = HOJ_MAX_LIMIT;
        } else if (lang == 7) { // php
            for (i = 0; i==0||LANG_PHV[i]; i++)
                call_counter[LANG_PHV[i]] = HOJ_MAX_LIMIT;
        } else if (lang == 8) { // perl
            for (i = 0; i==0||LANG_PLV[i]; i++)
                call_counter[LANG_PLV[i]] = HOJ_MAX_LIMIT;
        } else if (lang == 9) { // mono c#
            for (i = 0; i==0||LANG_CSV[i]; i++)
                call_counter[LANG_CSV[i]] = HOJ_MAX_LIMIT;
        } else if (lang == 10) { //objective c
            for (i = 0; i==0||LANG_OV[i]; i++)
                call_counter[LANG_OV[i]] = HOJ_MAX_LIMIT;
        } else if (lang == 11) { //free basic
            for (i = 0; i==0||LANG_BASICV[i]; i++)
                call_counter[LANG_BASICV[i]] = HOJ_MAX_LIMIT;
        } else if (lang == 12) { //scheme guile
            for (i = 0; i==0||LANG_SV[i]; i++)
                call_counter[LANG_SV[i]] = HOJ_MAX_LIMIT;
        }

    }

  • 相关阅读:
    Palindrome Partitioning
    Minimum Path Sum
    Maximum Depth of Binary Tree
    Minimum Depth of Binary Tree
    Unique Binary Search Trees II
    Unique Binary Search Trees
    Merge Intervals
    Merge Sorted Array
    Unique Paths II
    C++ Primer Plus 笔记第九章
  • 原文地址:https://www.cnblogs.com/crxis/p/8945848.html
Copyright © 2011-2022 走看看