ところどころおかしなところはコメで解説入れてると思いますが、わかりにくかったらすみません。思い付いた理由は期末テストに出たから
http://www.nicovideo.jp/watch/sm11889120