VK Cup 2015 - Qualification Round 1
はい。
http://codeforces.com/contest/522
A. Reposts
ざっくりと大意
・n件の入力が name1 reposted name2 という形式でname1がname2で伝達している??
・伝達のつながりの最長を探す??
方針のようなもの
・書き方が思い浮かばないのであとで
B. Photo to Remember
ざっくりと大意
・久しぶりにあった友人たちと折角なので写真を撮りたい。
・それぞれの写真に必要な大きさがn人分与えられる。
・i番目の人が写真を撮る時はi以外の人達の幅の合計と、i以外の人達の中で最も高い人の高さが必要になる。
方針のようなもの
・それぞれi以外の人達を計算する。
n=int(raw_input()) width=0 h1=[0,0] h2=[0,0] l=[] for i in range(n): w,h=map(int,raw_input().split()) width+=w if h>h1[0]: h2=[h1[0],h1[1]] h1=[h,i] elif h>h2[0]: h2=[h,i] l.append(w) for i,j in enumerate(l): if i==h1[1]: print (width-j)*h2[0], else: print (width-j)*h1[0],
入力受け取り時に個別のデータと合わせて幅の合計と、最も高い人と2番めに高い人をメモし続ける。 結果出力時は幅の合計から個別データを参照してその人の分だけ減算する。高さは最も高い人でなければ最も高い人の値を、最も高い人の時だけ2番目の人の値を用いる。