#先获取输入数据 l=int(input()) #数组长度转换成int类型 nums=list(map(int,input().split())) #一列数字转换成列表 if l<=2: print(max(nums)) #若数组长度小于等于2,直接返回最大值 else: #创建dp数组,里面存放满足不相邻条件的最大值 dp=[0]*l for i in range(l): #分三种情况处理,遍历第一个数字时,dp里没有数字,因此它本身就是最大值 if i==0: dp[i]=nums[i] #第二种:最大值再在dp[i-1]和nums[i]里选一个最大值 if i==1: dp[i]=max(nums[i],dp[i-1]) #第三种:因为数字已经开始有第三个,满足不相互邻条件了,最大值就在dp[i-1]和dp[i-2]+nums[i]中取最大的 if i>=2: dp[i]=max(dp[i-1],dp[i-2]+nums[i]) #最终最后一个dp[-1]存放的就必然是一个不相邻的连续数字最大值之和 print(dp[-1])