从Python的Kattis问题的输入读取行

时间:2015-12-27 15:38:52

标签: python

我不知道我应该如何编写代码,以便在提交代码并输出我想要输出的内容时自动读取输入。我不明白他们的测试是如何工作的..你应该把它写成从文件或输入中读取吗?您是否应该同时接受整个输入或逐行接收?如果逐行,你怎么知道什么时候停止?

我正在解决一个简单的问题,它为包含1或2个数字的每一行做了一些事情,但问题是我不知道如何编写它以便它将通过测试。该解决方案需要大约0.1秒,但Kattis说超过了时间限制(1秒),所以我猜它不会停止读取或等待输入或类似的东西。

如果可以的话,请指出他们的测试过程是如何工作的,或者告诉我应该使用哪种方法来接受输入。

我的代码:

for line in sys.stdin.readlines():
    line = line.strip("\n")
    numbers = [int(number) for number in line.split()]
    digitSumOnInterval(numbers[0], numbers[1])

2 个答案:

答案 0 :(得分:0)

从查看kattis问题,尝试输入a = 0和b = 10 ** 15-1以查看是否有效(因为它们是边界)。这个问题有一个数学技巧,可以使计算速度更快。

编辑2:(Python 3)

T=input() #testcase number
for _ in xrange(T):
 a,b=map(int, input().strip())
 more logic

答案 1 :(得分:0)

sys.stdin适用于Kattis,问题是我的代码速度慢了。我读了这样的输入:

for line in sys.stdin:
    numbers = [int(number) for number in line.split()]
    if len(numbers) == 2: 
        a, b = numbers[0], numbers[1]
        print(sumDigitsToN(b+1) - sumDigitsToN(a))