Exemplo n.º 1
0
        private JudgeTask[] ParseTask(string jsonStr)
        {
            JArray arr = JArray.Parse(jsonStr);

            if (arr.Count == 0)
            {
                return(new JudgeTask[0]);
            }

            JObject obj = arr[0] as JObject;

            if (!CheckTaskJObject(obj))
            {
                return(new JudgeTask[0]);
            }

            SDNUOJJudgeTask t = obj.ToObject <SDNUOJJudgeTask>();

            JudgeTask task = JudgeTaskFactory.Create(
                Int32.Parse(t.SubmitID), Int32.Parse(t.ProblemID), t.DataVersion,
                t.Language.Substring(0, t.Language.Length - 2), t.SourceCode, t.Author,
                Int32.Parse(t.TimeLimit), Int32.Parse(t.MemoryLimit), false);

            return(new JudgeTask[1] {
                task
            });
        }
Exemplo n.º 2
0
        private JudgeTask GetJudgeTask(int submitID)
        {
            GetSolutionInfo(submitID, out int problemID, out string author, out string lang);
            string sourceCode = GetSolution(submitID);

            GetProblemInfo(problemID, out int timeLimit, out int memoryLimit, out bool spj);

            string dateMD5 = GetTestDataMD5(problemID);

            JudgeTask task = JudgeTaskFactory.Create(
                submitID, problemID, dateMD5, lang, sourceCode,
                author, timeLimit, memoryLimit, spj);

            Authenticator.Singleton.UpdateSolution(submitID, 3, 0, 0, 0.0);

            return(task);
        }
Exemplo n.º 3
0
        private JudgeTask[] ParseTask(string jsonStr)
        {
            JObject jsonObj = JObject.Parse(jsonStr);

            if (!CheckTaskJObject(jsonObj))
            {
                return(new JudgeTask[0]);
            }

            JudgeTask t = JObject.Parse(jsonStr).ToObject <JudgeTask>();

            JudgeTask task = JudgeTaskFactory.Create(
                t.SubmitID, t.ProblemID, t.DataVersion,
                t.Language, t.SourceCode, t.Author,
                t.TimeLimit, t.MemoryLimit, t.SpecialJudge);

            return(new JudgeTask[1] {
                task
            });
        }