package main import . "fmt" func main() { var k int Scan(&k) ans := (2*(k-1)+1)*(2*(k-1)+1) + 2*k+1 + k+k Println(ans) } /* 考察 初期位置Sからの斜め移動縛りを考える 例えばK=4なら o x o x o x o x o x o x o x o x o x o x o x o x o x o x o x o x o x o x o x o x S x o x o x o x o x o x o x o x o x o x o x o x o x o x o x o x o x o x o x o x o となる 初期位置Sから上に1手進んだ位置から斜め移動縛りを考えると 例えばK=4なら x o x o x o x o x x x o x o x o x x x o x o x o x o x x x o x o x o x x x o x o S o x o x x x o x o x o x x x o x o x o x o x x x x x x x x x x x x x x x x x x x となる これは初期位置Sの上隣を初期位置S'としたK-1の斜め移動縛りと同じ移動になり 初期位置Sからの斜め移動縛りの隙間の一部を補完する感じになる この2つを重ねると o o o o o o o o o x o o o o o o o x o o o o o o o o o x o o o o o o o x o o o o S o o o o x o o o o o o o x o o o o o o o o o x o x o x o x o x o x o x o x o x o となり、これのxの領域に到達する移動方法はないのでこのoの領域が答え oの領域は 一辺が 2*(K-1)+1 の正方形領域と 下端2段が補完的に 2*K+1 個埋まっる 左端辺および右端辺がそれぞれ 2*K+1 のうち K+1 個ずつ埋まっており下端2段との重複を除くとちょうど K 個 これらを合わせると (2*(K-1) + 1)^2 + 2*K+1 + K + K が答え */