You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DMOJ COCI'17 Contest1 #1 Cezar题代码样例通过提交失败求助

问题排查结果
  • 边界异常:未处理x不在ranks数组范围的场景,当x < 2或者x > 11时,ranks.index(x)会直接抛出ValueError导致程序运行崩溃,这是提交评测失败的核心原因。
  • 逻辑遗漏:牌值刚好等于x的情况完全没有被统计,抽到这类牌刚好凑够21点属于安全不爆的情况,应该计入安全牌总数。
修正后的代码
suits = [4, 4, 4, 4, 4, 4, 4, 4, 16, 4]
ranks = [2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
x = 21
drawn = int(input())
for i in range(drawn):
    card = int(input())
    left = ranks.index(card)
    suits[left] -= 1
    x -= card

# 先处理边界情况
if x > 11:
    # 所有剩余牌点数都<=11,抽了不会爆
    print('VUCI')
elif x < 2:
    # 所有剩余牌点数都>=2,抽了必爆
    print('DOSTA')
else:
    idx = ranks.index(x)
    # 安全牌:点数<=x的所有剩余牌,包含等于x的情况
    total_safe = sum(suits[:idx+1])
    # 爆牌:点数>x的剩余牌
    total_bust = sum(suits[idx+1:])
    if total_bust >= total_safe:
        print('DOSTA')
    else:
        print('VUCI')

内容的提问来源于stack exchange,提问作者ammiko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 11:21:00