diff --git a/lib/commands/submit.js b/lib/commands/submit.js index 7376598b..e9db9c44 100644 --- a/lib/commands/submit.js +++ b/lib/commands/submit.js @@ -66,23 +66,16 @@ cmd.handler = function(argv) { if (result.ok) { session.updateStat('ac', 1); session.updateStat('ac.set', problem.fid); - core.getSubmission({id: result.id}, function(e, submission) { - if (e || !submission || !submission.distributionChart) - return log.warn('Failed to get submission beat ratio.'); - - const lang = submission.distributionChart.lang; - const scores = submission.distributionChart.distribution; - const myRuntime = parseFloat(result.runtime); - - let ratio = 0.0; - for (let score of scores) { - if (parseFloat(score[0]) > myRuntime) - ratio += parseFloat(score[1]); - } - + if (result.runtime_percentile) printLine(result, 'Your runtime beats %d %% of %s submissions', - ratio.toFixed(2), lang); - }); + result.runtime_percentile.toFixed(2), result.lang); + else + return log.warn('Failed to get runtime percentile.'); + if (result.memory && result.memory_percentile) + printLine(result, 'Your memory usage beats %d %% of %s submissions (%s)', + result.memory_percentile.toFixed(2), result.lang, result.memory); + else + return log.warn('Failed to get memory percentile.'); } else { printResult(result, 'error'); printResult(result, 'testcase'); diff --git a/lib/plugins/leetcode.js b/lib/plugins/leetcode.js index 0ce3a66e..bba96e6a 100644 --- a/lib/plugins/leetcode.js +++ b/lib/plugins/leetcode.js @@ -242,13 +242,17 @@ function verifyResult(task, queue, cb) { function formatResult(result) { const x = { - ok: result.run_success, - answer: result.code_answer || '', - runtime: result.status_runtime || '', - state: h.statusToName(result.status_code), - testcase: util.inspect(result.input || result.last_testcase || ''), - passed: result.total_correct || 0, - total: result.total_testcases || 0 + ok: result.run_success, + answer: result.code_answer || '', + lang: result.lang, + runtime: result.status_runtime || '', + runtime_percentile: result.runtime_percentile || '', + memory: result.status_memory || '', + memory_percentile: result.memory_percentile || '', + state: h.statusToName(result.status_code), + testcase: util.inspect(result.input || result.last_testcase || ''), + passed: result.total_correct || 0, + total: result.total_testcases || 0 }; x.error = _.chain(result) @@ -336,7 +340,7 @@ plugin.getSubmission = function(submission, cb) { let re = body.match(/submissionCode:\s('[^']*')/); if (re) submission.code = eval(re[1]); - re = body.match(/distribution_formatted:\s('[^']+')/); + re = body.match(/runtimeDistributionFormatted:\s('[^']+')/); if (re) submission.distributionChart = JSON.parse(eval(re[1])); return cb(null, submission); });