AtCoder Beginner Contest Edit

【pythonでABC213を解説】B - Booby Prize

問題概要

問題ページ

問題文

\(1,\ldots,N\) の番号のついた \(N\) 人の選手がゲームを行いました。選手 \(i\) のスコアは \(A_i\) であり、スコアが小さい方が上位になります。

ブービー賞に該当する選手、すなわち、下位から \(2\) 番目の選手の番号を求めてください。

制約

  • \(2 \leq N \leq 2\times 10^5\)
  • \(1 \leq A_i \leq 10^9\)
  • \(A_i\) は相異なる
  • 入力に含まれる値は全て整数である

問題の考察

ACコード

import sys


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    n = int(input().rstrip('\n'))
    a = list(map(int, input().rstrip('\n').split()))
    ls = []
    for i, v in enumerate(a):
        ls.append([v, i])
    ls.sort()
    print(ls[-2][1] + 1)


if __name__ == '__main__':
    solve()

プログラミング

-AtCoder Beginner Contest, Edit
-