Σ電卓(2)

いろいろ改良したらかなりまともになったのでとりあえず完成

六角形の個数を求めるやつだと、

$x1$y1$x2$y2$x3$y3$x4$y4$x5$y5$x6$y6[0<=x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6<=N][x1+y1,x2+y2,x3+y3,x4+y4,x5+y5,x6+y6<=N][x1x4-y4][x3+y3=x4+y4][x4>x5][y4=y5][y5>y6][x5=x6][x6-y6=1

こんな入力を与えると、

long res = N * (12 + N * (4 + N * (-15 + N * (-5 + N * (3 + N))))) / 720;
if ((1 + N) % 2 == 0) res += (45 + N * (-48 + N * (-52 + N * (60 + N * (5 + N * (-12 + 2 * N)))))) / 2880;
if (N % 2 == 0) res += N * (-48 + N * (-52 + N * (60 + N * (5 + N * (-12 + 2 * N))))) / 2880;
return res;

こんな出力を吐いてくれるようになった。
オプションでmodとったり、BigIntegerにしたりも可能。
SRM454の方は、20行くらいあって長過ぎorz
もっと頑張れそうな気もするけどめんどいからいいやw
そのうちどっかで公開するかも。
ひっそりと公開しました http://ow.ly/SuLM
パスワードはてきと