読者です 読者をやめる 読者になる 読者になる

君はまるで砂漠に咲く、一輪の花。

僕はその花に引き寄せられる蝶。

Codeforces Round #103 (Div.2)

implementation

はい。
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手浮きがあるか見れば大丈夫だった。