/**
Description:不容易系列之(3)—— LELE的RPG难题
http://acm.hdu.edu.cn/showproblem.php?pid=2045
递推题:
(1)当前n-1个方格已满足任何相邻的方格不同色,且首尾两格也不同色时,第n个格子就只有一种涂法,
就是异于第1、n-1个格子的剩下一种颜色。
(2)前n-1格子不满足要求、当涂上n的时候满足了要求,这时只能是第n-1格子的颜色与第1个格子的颜色相同。
此时第n个格子就可以涂上异于第1或n-1个 格子的另外两种颜色。
于是建立递归式:f(n) = f(n-1) + 2*f(n-2); n > 3 (当是第二种情况时,第1个格子与第n-1个格子至少有一个格子)。
**/
#include<iostream>
#include<cstring>
#include<iomanip>
using namespace std;
long long a[55];
long long f(int n)
{
if(a[n]) return a[n];
if(n == 1)
a[n] = 3;
else if(n == 2 || n == 3)
a[n] = 6;
else a[n] = f(n-1) + 2*f(n-2);
return a[n];
}
int main()
{
int n;
while(cin>>n){
memset(a, 0, sizeof(a));
cout<<f(n)<<endl;
}
///system("pause");
return 0;
}