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に置き換えをすると 3XXX4X
や XX5XX6
とかでしょうか。 +1になっている数の個数を全体の長さから引いた数が解になります。証明はありません。