
class Solution {
public int solution(int n) {
long[] dp = new long[n+1];
dp[2]= 3;
dp[4] = 3*dp[2]+ 2;
for(int k=6; k<=n; k+=2){
long sum =0;
for(int i=1; i<=k/2-2; i++) sum+=dp[2*i];
dp[k] = (dp[k-2] * 3 + 2*sum +2)%1000000007;
}
if(n%2==1) return 0;
else return (int)dp[n];
}
}