Codeforces Round #221 (Div. 2)
はい。
http://codeforces.com/contest/376
A. Lever
ざっくりと大意
・てこの原理で力が釣り合うか、偏るか。
方針のようなもの
・重さ*番目の和を左右で分けて計算する。
a,b=map(str,raw_input().split('^')) a=a[::-1] al=len(a) bl=len(b) l=r=0 x=0 while x<al: if a[x]!='=': l+=int(a[x])*(x+1) x+=1 x=0 while x<bl: if b[x]!='=': r+=int(b[x])*(x+1) x+=1 print 'balance' if l==r else 'left' if l>r else 'right'
B. I.O.U.
ざっくりと大意
・債務関係を最適化する。
・AはBに20貸している、BはCに20貸していて40の債務関係があるのをAがCに20貸しているようにすると20の債務関係になる。
方針のようなもの
・付け替えをシミュしようと思ったらバグった。。。
n,m=map(int,raw_input().split()) l=[] ans=0 for i in xrange(m): a=map(int,raw_input().split()) ans+=a[2] l.append(a) while 1: chk=len(l) if chk==1: break for i in range(chk): for j in range(i,chk): if l[i][1]==l[j][0]: if l[i][2]>l[j][2]: ans-=l[j][2] l[i][2]-=l[j][2] l[j][0]=l[i][0] break elif l[i][2]==l[j][2]: ans-=l[i][2] l[i][1]=l[j][1] l.pop(j) break else: ans-=l[i][2] l[j][2]-=l[i][2] l[i][0]=l[j][0] break if len(l)==chk: break if len(l)==chk: break print ans