SPOJ平台Python输入处理遇运行错误,求标准读取方法
SPOJ平台Python输入处理问题(针对MINDIST题目)
问题概述
熟悉竞赛编程输入处理,但在SPOJ的MINDIST题目中,Python代码的输入处理模块报错(C++代码可正常运行,排除题目本身问题),需要明确SPOJ平台上Python的标准输入读取方式。
题目输入格式
- 第一行输入单个整数T,代表测试用例数量
- 每组测试数据包含:
- 第一行两个空格分隔的整数N(1≤N≤100000)和S(0≤S≤100000000)
- 后续N-1行,每行三个整数X(1≤X≤N)、Y(1≤Y≤N)、Z(1≤Z≤1000),表示节点X与Y之间存在一条权重为Z的无向边
- 输入数据保证合法
输入示例
2
5 2
1 2 5
2 3 2
2 4 4
2 5 3
8 6
1 3 2
2 3 2
3 4 6
4 5 3
4 6 4
4 7 2
7 8 3
报错复现代码
以下代码在本地及ideone等在线编译器可正常运行,但在SPOJ上触发runtime error, Non-Zero Exit Code:
def get_int(): return int(input()) def get_ints(): return map(int, input().split()) T = get_int() for _ in range(T): N, S = get_ints() for _ in range(N-1): X, Y, Z = get_ints()
问题定位验证
将输入值硬编码后,代码在SPOJ上返回预期的wrong answer,说明问题出在get_ints()的输入读取逻辑上:
def get_int(): return int(input()) def get_ints(): return map(int, input().split()) T = get_int() for _ in range(T): N, S = 2, 3 for _ in range(N-1): X, Y, Z = 1, 2, 3
内容的提问来源于stack exchange,提问作者FluidMechanics Potential Flows
相关产品推荐
相关产品推荐

