diff --git a/packages/hydrooj/src/model/contest.ts b/packages/hydrooj/src/model/contest.ts index c7ab1744..0d60214e 100644 --- a/packages/hydrooj/src/model/contest.ts +++ b/packages/hydrooj/src/model/contest.ts @@ -66,14 +66,14 @@ const acm = buildContestRule({ const lockAt = isLocked(tdoc) ? tdoc.lockAt : null; for (const j of journal) { if (!this.submitAfterAccept && display[j.pid]?.status === STATUS.STATUS_ACCEPTED) continue; + if (![STATUS.STATUS_ACCEPTED, STATUS.STATUS_COMPILE_ERROR, STATUS.STATUS_FORMAT_ERROR].includes(j.status)) { + naccept[j.pid]++; + } const real = Math.floor((j.rid.getTimestamp().getTime() - tdoc.beginAt.getTime()) / 1000); const penalty = 20 * 60 * naccept[j.pid]; detail[j.pid] = { ...j, naccept: naccept[j.pid], time: real + penalty, real, penalty, }; - if (![STATUS.STATUS_ACCEPTED, STATUS.STATUS_COMPILE_ERROR, STATUS.STATUS_FORMAT_ERROR].includes(j.status)) { - naccept[j.pid]++; - } if (lockAt && j.rid.getTimestamp() > lockAt) { npending[j.pid]++; // FIXME this is tricky