| 1234567891011121314151617181920212223242526272829 | 
							- const MOD int = 1000000007
 
- func checkRecord(n int) int {
 
- 	// A, L, P
 
- 	var dp = [2][3]int{{1, 1, 0}, {1, 0, 0}}
 
- 	for i := 1; i < n; i++ {
 
- 		var nxt [2][3]int
 
- 		for A := 0; A <= 1; A++ {
 
- 			for L := 0; L <= 2; L++ {
 
- 				nxt[A][0] += dp[A][L] // Append P
 
- 				if L > 0 {
 
- 					nxt[A][L] += dp[A][L-1] // Append L
 
- 				}
 
- 				if A > 0 {
 
- 					nxt[A][0] += dp[A-1][L] // Append A
 
- 				}
 
- 				nxt[A][L] %= MOD
 
- 			}
 
- 		}
 
- 		dp = nxt
 
- 	}
 
- 	sum := 0
 
- 	for i := range dp {
 
- 		for _, v := range dp[i] {
 
- 			sum = (sum + v) % MOD
 
- 		}
 
- 	}
 
- 	return sum
 
- }
 
 
  |