Codeforces Round #331 (Div.2)
はい。
http://codeforces.com/contest/596
A. Wilbur and Swimming Pool
ざっくりと大意
・座標がn箇所与えられる。それらの座標で作成する長方形が1つに定まればその面積を、そうでなければ-1を出力。
・長方形は辺がx軸、y軸に平行になるもののみが対象。
方針のようなもの
・強引になんとかする。
def niten(a,b): return abs(a-b) if a>=0 and b>=0 else a+abs(b) if a>=0 else abs(a)+b if b>=0 else abs(abs(a)-abs(b)) n=int(raw_input()) if n==1: print -1 elif n==2: a,b=map(int,raw_input().split()) c,d=map(int,raw_input().split()) if a==c or b==d: print -1 else: print abs(max(a,c)-min(a,c))*abs(max(b,d)-min(b,d)) elif n==3: l=[] for i in range(3): l.append(map(int,raw_input().split())) l.sort() if l[0][0]==l[1][0] and (l[1][1]==l[2][1] or l[0][1]==l[2][1]): x=niten(l[0][0],l[2][0]) y=niten(l[0][1],l[1][1]) elif l[1][0]==l[2][0] and (l[0][1]==l[1][1] or l[0][1]==l[2][1]): x=niten(l[0][0],l[2][0]) y=niten(l[1][1],l[2][1]) else: x,y=1,-1 print x*y else: l=[] for i in range(4): l.append(map(int,raw_input().split())) l.sort() if l[0][0]==l[1][0] and l[2][0]==l[3][0] and l[0][1]==l[2][1] and l[1][1]==l[3][1]: x=niten(l[0][0],l[2][0]) y=niten(l[0][1],l[1][1]) else: x,y=1,-1 print x*y
座標が1点だと定まらないので-1。2点でx,yどちらかの座標が共通だと-1、そうでなければx座標の差とy座標の差で面積が求まる。3,4点場合には座標をソートすると共通になる座標と差がある座標の出現に法則?があるのでそれで判定する。
B. Wilbur and Array
ざっくりと大意
・問題文が解読できない。
方針のようなもの
・そうだ、パクろう。。
n=int(raw_input()) l=map(int,raw_input().split()) ans=chk=0 for i in l: ans+=abs(chk-i) chk=i print ans
最初は\(a_0\)の値をそのまま解に加算、以降は数列aの中の一つ前の値との差の絶対値を加算していく。問題文が解読できてないけど。