この問題http://www.spoj.pl/problems/PEBBMOV/を解決しようとしています。私は正しいアルゴリズムを持っていると思いますが、それはこの質問のポイントではありません。この問題には奇妙な入力ファイルがあります。1 つのテスト ケースの入力は、n a1 a2 a3 ...an の形式にする必要があります。(すべて整数)
ここでの問題は、a[i] の間に改行文字などがあることです。このような改行をスキップして、1 つのテスト ケースに属するすべての a[i] を 1 つの場所に収集できる必要があります。どうすればこれをすべて知ることができますか? 一連の WA と Runtime Errors に加えて、フォーラムでのいくつかの調査。私はこれを行うために次のpythonコードを持っていますが、重要な場所で動揺しているようで、それを成し遂げることができません。入力の読み取りの最後に、リスト lines[] に適切な入力行があることを願っています。
誰かがここで私の間違いを教えてもらえますか? または、より良いアプローチを提案しますか?. 前もって感謝します..
import sys
#data = sys.stdin.readlines()
#lines = inp.split('\n')
data = sys.stdin.read()
pos = 0
lno = 0
lines = []
while pos<len(data):
while not data[pos].isdigit():
pos = pos + 1
num =data[pos]
print num
cur = pos + 1
numbers_collected = 0
x = [] # temp list
y = []
while numbers_collected < num:
if cur<len(data) and data[cur].isdigit():
y.append(data[cur])
cur = cur + 1
numbers_collected += 1
else:
if cur<len(data)and numbers_collected < num:
cur = cur + 1
else:
break
print x
pos = cur
x.extend(y)
lines.extend(x)
for line in lines:
print line