public static void Main()
int[] houses = {1,2,3,1,9,10,9};
Console.WriteLine(RobMaxAmount(houses).ToString());
public static int RobMaxAmount(int[] houses) {
return Math.Max(RobMaxAmountSp(houses, 0, 0), RobMaxAmountSp(houses, 1, 0));
public static int RobMaxAmountSp(int[] houses, int position, int sum) {
if(position >= houses.Length)
if(position < houses.Length)
return Math.Max(RobMaxAmountSp(houses, position+2, sum), RobMaxAmountSp(houses, position+3, sum));