Codeforces Beta Round #43 D. Parking Lot
Lに対してnが小さいので、駐車場の状態ではなく止まっている車を記憶しておく。あらかじめ1台車を停めておくと楽。
L,b,f = map(int,raw_input().split()) n = input() P = [(-b,0,-1)] # position,length,id for i in range(n): t,l = map(int,raw_input().split()) if t==1: for j in range(len(P)): p = P[j][0]+P[j][1]+b if j==len(P)-1 or p+l+f<=P[j+1][0]: break if p+l<=L: P.insert(j+1,(p,l,i)) print p else: print -1 else: for i in range(len(P)): if P[i][2]==l-1: del P[i] break