Codeforces 538D. Weird Chess

問題

N*Nのチェス盤にコマをいくつか置く。
コマは(x,y)に居る時、(x+dx[i],y+dy[i])の地点に攻撃する。
今、コマの位置と攻撃された地点の情報が与えられるので、矛盾のないdx[i],dy[i]を返す。
作れない場合はNOを返す。複数答えがある場合はどれか一つ返す。

考え方

ある攻撃地点(x',y')はどれかのコマによって行わなければならない。
もしそれがコマ(x,y)によって行われた場合は、dx=dx'-x,dy=dy'-yが答えにならなければならない。
このdx,dyが他のコマでも矛盾が起きなければ採用。
これをすべての攻撃地点に対して行い、候補となるdx,dyを使ってコマの位置から攻撃地点を再現する。
再現したものと与えられた情報が矛盾していれば、NO。していなければ、YESでdx,dyを返せばよい。