解いた問題を→に表示するようにした
SRMなどの過去問を解こうと思ったけど、どの問題が解いていない問題か分からないので、→に記事へのリンクを表示するようにした。適当なスクリプトで記事一覧から抽出して、手動で貼り付け。なので更新が遅いかも。
2011/05/27 再試合の小数点に対応。
# coding: utf-8 # はてなの記事一覧からリンク集を作成 import urllib import re url = "http://d.hatena.ne.jp/kusano_prog/archive?of=%d" data = "" for i in range(0,200,50): data += urllib.urlopen(url%i).read().decode("euc-jp") SRM = {} Codeforces = {} PKU = {} for link in re.findall('<a href="(.*?)">(.*?)</a>',data): u,t = link #print u,t if t.startswith("SRM"): r = re.match("SRM([0-9.]+)",t).group(1) if r not in SRM: SRM[r] = {} if len(t)<=8: SRM[r]["over"] = u if "Div1 Easy" in t: SRM[r]["D1E"] = u if "Div1 Medium" in t: SRM[r]["D1M"] = u if "Div1 Hard" in t: SRM[r]["D1H"] = u if "Div2 Easy" in t: SRM[r]["D2E"] = u if "Div2 Medium" in t: SRM[r]["D2M"] = u if "Div2 Hard" in t: SRM[r]["D2H"] = u elif t.startswith("Codeforces") or t.startswith("CodeForces"): m = re.search("#(\d+) (.)\.",t) if m: r = int(m.group(1)) if r not in Codeforces: Codeforces[r] = {} Codeforces[r][m.group(2)] = u m = re.search("^Code[Ff]orces Beta Round #(\d+)$",t) if m: r = int(m.group(1)) if r not in Codeforces: Codeforces[r] = {} Codeforces[r]["over"] = u elif t.startswith("PKU"): m = re.search("PKU (\d+) ",t) if m: PKU[m.group(1)] = u def link(t,u): if u!="": return '<a href="%s">%s</a>'%(u,t) else: return t print "<div><b>SRM</b></div>" for r in sorted(SRM.keys())[::-1]: s = '<div style="padding-left:1em">' s += link(str(r),SRM[r]["over"] if "over" in SRM[r] else "") s += " Div2 " if "D2E" in SRM[r]: s += link("E",SRM[r]["D2E"]) if "D2M" in SRM[r]: s += link("M",SRM[r]["D2M"]) if "D2H" in SRM[r]: s += link("H",SRM[r]["D2H"]) s += " Div1 " if "D1E" in SRM[r]: s += link("E",SRM[r]["D1E"]) if "D1M" in SRM[r]: s += link("M",SRM[r]["D1M"]) if "D1H" in SRM[r]: s += link("H",SRM[r]["D1H"]) s += "</div>" print s print "<div><b>Codeforces</b></div>" for r in sorted(Codeforces.keys())[::-1]: s = '<div style="padding-left:1em">' s += link("#"+str(r),Codeforces[r]["over"] if "over" in Codeforces[r] else "") s += " " for p in "ABCDEFGHIJKLMN": if p in Codeforces[r]: s += link(p,Codeforces[r][p]) s += "</div>" print s print "<div><b>PKU</b></div>" print '<div style="padding-left:1em">' for p in sorted(PKU.keys()): print link(str(p),PKU[p])+" " print "</div>"