読者です 読者をやめる 読者になる 読者になる

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

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

Codeforces Round #233 (Div. 2)

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

A. Pages

ざっくりと大意

・全部でnページあるものをpを起点で()で囲んで前後にkページ。端にまでなってなければ<<,>>をつける。

方針のようなもの

・左端と右端を丁寧に。

n,k,p=map(int,raw_input().split())
l=k-p
r=k+p
if l<=0:
    l=1
if n<r:
    r=n
ans=[]
for i in range(l,r+1):
    if i==l and i!=1:
        ans.append('<<')
        ans.append(str(i))
    elif i==r and i!=n:
        ans.append(str(i))
        ans.append('>>')
    elif i==k:
        ans.append('('+str(i)+')')
    else:
        ans.append(str(i))
print ' '.join(ans)

コンテスト当時はkから左に右と作ってた。kからなら解を作りながら端が1,nからはみ出さないように<<,>>をつけるかを気をつけながら。先に解を用意するなら同じく端の1,nに気をつけて丁寧に。