結果
| 問題 | No.1500 Super Knight | 
| コンテスト | |
| ユーザー |  | 
| 提出日時 | 2021-05-07 23:21:06 | 
| 言語 | PyPy3 (7.3.15) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 44 ms / 2,000 ms | 
| コード長 | 705 bytes | 
| コンパイル時間 | 366 ms | 
| コンパイル使用メモリ | 82,304 KB | 
| 実行使用メモリ | 58,624 KB | 
| 最終ジャッジ日時 | 2024-09-15 11:28:34 | 
| 合計ジャッジ時間 | 2,941 ms | 
| ジャッジサーバーID (参考情報) | judge2 / judge5 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 2 | 
| other | AC * 33 | 
ソースコード
import sys
input = lambda : sys.stdin.readline().rstrip()
sys.setrecursionlimit(2*10**5+10)
write = lambda x: sys.stdout.write(x+"\n")
debug = lambda x: sys.stderr.write(x+"\n")
n = int(input())
dxy = [
    [3,0],[-3,0],
    [0,3],[0,-3],
    [2,3],[3,2],
    [-2,3],[-3,2],
    [2,-3],[3,-2],
    [-2,-3],[-3,-2]
]
def sub(n):
    s = set()
    v = (0,0)
    s = [v]
    for _ in range(n):
        ns = set()
        for v in s:
            xx,yy = v
            for x,y in dxy:
                ns.add((x+xx,y+yy))
        s = ns
    return (s)
if n<7:
    ans = len(sub(n))
elif n%2==0:
    ans = ((6*n+1)**2 - 1)//2 - (n**2) + 1
else:
    ans = ((6*n+1)**2 - 1)//2 - (n**2-1)
M = 10**9+7
print(ans%M)
            
            
            
        