atcoder ARC 162 Ekiden Race

atcoder.jp

参考:
[ARC162] A - Ekiden Race|syamashi

・基本的には参考記事の考え方でやる。しかし、往路(index)と総合順位を対応させて総合順位でソートする必要があり、それをenumarateで実装している。

t=int(input())
for _ in range(t):
  n=int(input())
  p=list(map(int, input().split()))
  
  c=list(enumerate(p))  #(index,p[index])の順にリストにする。
  c.sort(key=lambda x:x[1])  #p[index]に対してのソートする。
  #print(c)
  
  cnt=1
  for i in range(n):
    #print(c[i])

    #最初だけ上限を決める。
    if i==0:
      tmp=c[i][0] 
    else:
      #上限を更新したらcntを+1
      if c[i][0]>tmp:
        cnt+=1
        tmp=c[i][0]
  print(cnt)