Codeforces Round #103 (Div.2)
はい。
http://codeforces.com/contest/144
A. Arrival of the General
implementation
ざっくりと大意
・将軍は並び方にめっさ厳しく拘るので左側が最大の人で右側が最小の人でなければならない??
・左右を一人ずつ比較でswap交換して手数はいくつか??
方針のようなもの
・おそらく移動の仕方は最大値と最小値が交差して1手浮くか、そのまま両端に寄せる2種類しかないと思う。
n=int(raw_input()) l=[int(x) for x in raw_input().split()] ans=chk=t=0 a=l.index(max(l)) chk=min(l) for j in range(-1,-1*n-1,-1): if l[j]==chk: i=n+j k=n-i-1 break print a+k if a<i else a+k-1
やはり最大値と最小値の端までの距離と移動で交差して1手浮きがあるか見れば大丈夫だった。