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

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

Bayan 2015 Contest Warm Up

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

A. Bayan Bus

ざっくりと大意

・k人の参加者がバスで移動する、最奥の席は4人席でそれより前は2人席と通路と1人席である。
・k人が乗った状態を奥から着席させて座るトコをO、空席は#、通路は.で出力する。

方針のようなもの

・最初は4人で席が埋まって、以降は3人で埋まるのを一行ずつ処理する。

n=int(raw_input())

def sit(x,q):
    for i in range(len(q)):
        if q[i]=='#':
            q[i]='O'
            x-=1
        if x==0:
            break
    return q


h='+------------------------+'
a=['|','#','.','#','.','#','.','#','.','#','.','#','.','#','.','#','.','#','.','#','.','#','.|D|)']
b=['|','#','.','#','.','#','.','#','.','#','.','#','.','#','.','#','.','#','.','#','.','#','.|.|']
c=['|','#','.......................|']
d=['|','#','.','#','.','#','.','#','.','#','.','#','.','#','.','#','.','#','.','#','.','#','.|.|)']
if n>4:
    a=sit((n+1)/3,a)
elif n>=1:
    a=sit(1,a)

if n>=6:
    b=sit(n/3,b)
elif n>=2:
    b=sit(1,b)
if n>=3:
    c[1]='O'

if n>=7:
    d=sit((n-1)/3,d)
elif n>=4:
    d=sit(1,d)

print h
print ''.join(a)
print ''.join(b)
print ''.join(c)
print ''.join(d)
print h

座席は似たパーツが多いし1行毎にする必要なかったかもだけど今回は1行ずつ別々に書いた。

B. Strongly Connected City

ざっくりと大意

・後で