https://codeforces.ml/contest/1459/problem/B
思路:
当n为偶数,令p=n/2,可以分成走p步竖走p步横,在一个轴中从0开始p步可以到p,p-2,…,0,…,-p.最终有p+1个位置.所以竖和横一起有(p+1)^2个位置。
当n为偶数,可以分为p步竖p+1步横,或p+1步竖p步横。故总位置为(p+1)*(p+2)*2。
Code:
#include<iostream>
using namespace std;
int main()
{
int n;cin >> n;
int p = n / 2;
if (n % 2 == 0)cout << (p + 1) * (p + 1);
else cout << 2 * (p + 1) * (p + 2);
}