0

次の仕様に問題があります。

入力:

最初の行には、指定されたシーケンスの要素数である整数Nが含まれています。次に、N個の整数A1、A2 ...が続きます。An、Aiは、指定されたシーケンスのi番目の要素です。これらの数字は、スペースで区切るか、改行で区切ることができます。

そのような入力をどのように処理できますか?次のことを試しましたが、スペースで区切られた要素に対してのみ機能します。改行で区切られた要素で使用すると、採点者は「時間を超えました」とスローします。

import sys
counter=0
A=[]
for line in sys.stdin:
    if counter!=0:
        A+=[int(Ai) for Ai in line.split()]
    else:
        N=int(line)
        counter+=1
4

1 に答える 1

1

sys.stdinファイル(ファイルでもある)から読み取っていると仮定すると、次のようになります。

f = open('path/to/file')
N = int(f.readline().strip())
A = []
while len(A) < N:
    A.extend(int(i) for i in f.readline().strip().split())

お役に立てれば

于 2012-10-17T18:30:21.850 に答える