私は実際にあなたのコードに従っているわけではないが、これは:
ar = index = [0]*n
Pythonでやるのが奇妙に思えますが、それを次のように置き換えてみてください:
ar = [0]*n
index = [0]*n
それが動作するかどうかを確認してください。
この例は、なぜそれが奇妙に見えるかを見るのに役立ちます:
>>> a = b = [0] * 5
>>> a
[0, 0, 0, 0, 0]
>>> b
[0, 0, 0, 0, 0]
>>> a[1] = 2
>>> a
[0, 2, 0, 0, 0]
>>> b
[0, 2, 0, 0, 0]
あなたは他の言語には「変数」があり、Pythonには「名前」があります。
サイドノート:
コードを読みやすくするようにしてください:
- go to a new line when required, there's no actual need for
;
- don't write for-loops/if-statements in one line: there's list comprehension for that.
また、(私があなたがしようとしていることを理解していれば)、あなたのコードは次のように書き直すことができます:
s = raw_input().strip().split(' ')
ar = [(int(num),i) for i,num in enumerate(s)]
ar.sort()
print [a[1] for a in ar[:5]]