ABC072
A問題
最初max(A-B,0)をmin(A-B,0)と書いて1WA
ソースコードは省略
B問題
文字列の偶数文字目(1-indexed)を抜き取って出力
C問題
概要:長さNの整数列に±1(or0)したとき同じ数にできる数の個数の最大値を求めよ
制約が0≦Ai<10^5と小さいので素直に10^5の大きさのカウント用配列を作ってcnt[i-1]+cnt[i]+cnt[i+1]の最大値を求めれば良い(i = 0のときに注意)
D問題
概要:長さNの整数列を隣合う2数を交換する操作をしてAi≠i(1≦i≦N)を満たす数列にするとき最小の交換回数を求めよ
bool型配列を用意し、Ai=iとなる場所をtrueにする
あとはtrueが連続するところを優先してfalseに変えていく
(例えば4,2,3,1という数列の場合4,2を入れ替えるより2,3を入れ替えたほうが交換回数が少なくできる)