あったこといろいろ

ほぼ自分用備忘録です。

AtCoder上で過去に提出したソースコードをローカルに保存する

この記事は、Competitive Programming Advent Calendar 2016(その2)の9日目の記事です。


ACしたソースコードは削除してしまう運用をしていましたが、ふと過去に提出したソースコードをローカルに保存したくなったので、プログラムを書きました。
同じ気持ちになった人は是非ご利用下さい。


以下プログラムの簡単な仕様です

  • 本プログラムを実行した階層に、「(コンテスト名)-(問題ID)_(submitID).cpp」という名称のファイルが大量に作成されます。(例:"abc001-A_582728.cpp")
  • 「ME='Yazaten'」という文のYazatenを自分のAtCoder IDに変更して使用して下さい。
  • ABC,ARC以外のコンテストに提出したソースコードについては対応していません。
  • およそ1秒あたり1ソースコードを取得する設計になっているので、「保存するソースコード数 * 1秒」以上の実行時間がかかります。

著作権の話

ソースコード著作権が少し気になってAtCoderの規約と著作権法を雑に読みました。

結論だけ話すと、自分のソースコードを取得することは問題無さそうです。
他人のソースコードを取得することが違法かどうかはよくわからない*1ので、非推奨としておきます。
( 間違っていればご指摘いただけるとありがたいです )

ソースコード

  • 本プログラムはpythonで書かれています。
  • python 2.7.9で動作することを確認しています。
  • 適当に書いたので冗長かもしれませんが、ご容赦ください。
  • skht777さんの作成したAPI( 元プログラムの作者はYSRKENさん? )を利用しています。


参考文献


明日、10日目の記事の担当は nanTosaka2 さんと ark_golgo さんです。

*1:著作権物の複製にあたるかもしれない