Coder-Strike 2014 - Round 2
はい。
http://codeforces.com/contest/413
A. Data Recovery
ざっくりと大意
・n回のテストを行ったがm回の\(t_i\)しか記録を取っていなかった。別途で最大値と最小値はわかっている。
・3回のテストで最大値3,最小値1で記録を取っているのが2の一件のみの場合はテストが[2,1,3]だったとしてあり得る。
・2回のテストで最大値3,最小値1で記録を取っているのが2の一件のみの場合は[1,3]のどちらかの記録しかあり得ず不正である。
方針のようなもの
・最大と最小の範囲内でかつ回数が足りるかを見れば良さそう。
n,m,i,a=map(int,raw_input().split()) t=map(int,raw_input().split()) r=[i,a] ans=['Incorrect','Correct'] chk=1 while 1: if i in t: t.remove(i) m-=1 elif a in t: t.remove(a) m-=1 else: break n-=2 if n<m: print ans[0] exit() for x in t: if x not in r: if n>0 and i<=x<=a: r.append(x) else: chk=0 n-=1 print ans[chk]
回数が足りるかを見るのがすごい面倒だった。最小値,最大値と一致したデータは取り除いて記録回数も-1して対処した。