diff --git a/packages/hydrojudge/package.json b/packages/hydrojudge/package.json index 1dda7bc8..2873ea25 100644 --- a/packages/hydrojudge/package.json +++ b/packages/hydrojudge/package.json @@ -1,7 +1,7 @@ { "name": "@hydrooj/hydrojudge", "bin": "bin/hydrojudge.js", - "version": "2.11.7", + "version": "2.11.8", "main": "package.json", "author": "undefined ", "repository": "https://github.com/hydro-dev/Hydro.git", diff --git a/packages/hydrojudge/src/cases.ts b/packages/hydrojudge/src/cases.ts index 0bc4a43e..d7e9cd47 100644 --- a/packages/hydrojudge/src/cases.ts +++ b/packages/hydrojudge/src/cases.ts @@ -40,10 +40,10 @@ const RE0: Re0[] = [ ]; const RE1: Re1[] = [ { - reg: /^([^\d]*)([0-9]+)-([0-9]+).in$/, - output: [(a) => `${a[1] + a[2]}-${a[3]}.out`], + reg: /^([^\d]*)([0-9]+)([-_])([0-9]+).in$/, + output: [(a) => `${a[1] + a[2]}${a[3]}${a[4]}.out`], subtask: (a) => +a[2], - id: (a) => +a[3], + id: (a) => +a[4], }, ]; @@ -218,13 +218,9 @@ export default async function readCases(folder: string, cfg: Record } catch (e) { throw changeErrorType(e, FormatError); } - let auto = !result.outputs?.length; - if (auto) { - if (result.subtasks.length && Math.sum(result.subtasks.map((subtask) => subtask.cases.length))) { - auto = false; - } - } - if (auto) { + let cases = result.outputs?.length || 0; + cases += Math.sum((result.subtasks || []).map((subtask) => subtask.cases.length)); + if (!cases) { const c = await readAutoCases(folder, args, config, result); result.subtasks = c.subtasks; result.count = c.count;