AtCoder Grand Contest 024

はい。
https://atcoder.jp/contests/agc024

A - Fairness

PyPy3

a,b,c,k=map(int,input().split())
print([a-b,b-a][k%2])

Unfairになる事例は発生しない気がします。証明はありません。偶奇で分けてa-bかb-aを出力します。

B - Backfront

PyPy3

n=int(input())
d={}
for i in range(n):
    p=int(input())
    d[p]=i+1
ans=s=1
while s<n:
    f=d[s]
    cnt=0
    for i in range(s,n+1):
        if d[i]>=f:
            f=d[i]
            s=i
            cnt+=1
        else:
            s=i
            break
    ans=max(ans,cnt)
print(n-ans)

書き方や説明の仕方がわかりませんが、より右側に+1になる数が見つけラるような最長部分を探します? 数列 325146 から探すとして対象外の数をXに置き換えをすると 3XXX4XXX5XX6 とかでしょうか。 +1になっている数の個数を全体の長さから引いた数が解になります。証明はありません。