Some checks failed
Deploy / deploy (push) Has been cancelled
「这行算不算数」原来判的是 `f.in.trim()`,把「这题没有输入」和「这行我还没 填」撞成了同一种状态。打印类题目(输出星号矩形、只靠 print 的格式化输出题) 输入留空 → 点「先运行」整行被删 → 一行不剩 → 「上传」永远是灰的,老师只能 往输入框里塞个「无」才存得下去,那两个字节就真的进了 stdin。8019 / 8020 / 8021 三道题的 1.in 就是这么变成 3 字节「无」的。 拆成两个判据: - hasOutput —— 有输出且没报错,这一行才打进 zip,输入空不空无所谓; - isFilled —— 输入或输出任一非空,只用来在「先运行」里筛掉面板上的空占位行, 全没填时留一行当无输入题跑。 canUpload 保留原来那条守卫:填了输入却没跑出输出的行仍然挡住上传。「先运行」 不再要求先填输入。 后端本来就收空的 .in(processTestCaseZip 无非空校验),已上线的 8007、P003 的 1.in 就是 0 字节,卡住的一直只有这个面板。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AdMvixPo27sWFrUmk6ZStZ