君はまるで砂漠に咲く、一輪の花。

僕はその花に引き寄せられる蝶。

Codeforces Round #149 (Div. 2)

はい。
http://codeforces.com/contest/242

A. Heads or Tails

brute force,implementation

ざっくりと大意

・Vasyaがx回とPetyaがy回でValeraが審判をしてコイントスで遊ぶ
・表なら1点、裏なら0点 最後にポイントが多いほうが勝ちで同ポイントなら引分
・Valeraはいくつかゲームの記録を失ってしまった
・Vasyaが少なくともa回が表、Petyaが少なくともb回が表だったことと勝者がVasyaだったようなことは覚えている
・あり得るスコアのパターンを出力

方針のようなもの

・a<=xの範囲でbより大きい数字を用意、b<用意した数字<=yで組合せる

x,y,a,b=map(int,raw_input().split())
v,p,ans=[],[],[]
for i in range(max(a,b+1),x+1):
    v.append(i)
for i in range(b,y+1):
    p.append(i)
for i in v:
    for j in p:
        if i>j:
            ans.append((i,j))
        else:
            break
print len(ans)
for i in ans:
    print i[0],i[1]

B. Big Segment

implementation,sortings

ざっくりと大意

・[\(l_i\), \(r_i\)]のセグメントがn個ある ・n個あるのを他を全てカバーできるようなセグメントを1つ選んでその番目かなければ-1を出力
・他全てをカバーとは[a,b] [c,d]がa<=c<=d<=bが成り立つ時

方針のようなもの

・a,-bにして受け取りながら最小値と最大値をメモして入力終わったらソートして先頭が違うなら-1でいけそう

n=int(raw_input())
ans=0
w=[]
lm,rm=1000000000,1
for i in range(n):
    l,r=map(int,raw_input().split())
    lm=min(l,lm)
    rm=min(-r,rm)
    w.append((l,-r))
chk=w[:]
chk.sort()
print w.index(chk[0])+1 if chk[0][0]==lm and chk[0][1]==rm else -1