func flipLights(n int, m int) int { // 1. Flip all; // 2. Flip odd; // 3. Flip even; // 4. Flip 3k + 1. // So, 1 + 2 -> 3, we have 8 states at most: // On; 1; 2; 3; 4; 1 + 4; 2 + 4; 3 + 4. // When 2 < n and 3 <= m, we can have them all. switch { case m == 0: return 1 case n == 1: return 2 case n == 2 && m == 1: return 3 case n == 2 || m == 1: return 4 case m == 2: return 7 } return 8 }