Round Table Problem Code: ZCO12004 Codechef Solution

#include <bits/stdc++.h>
using namespace std;
int main() {  
  ios::sync_with_stdio(0);
  cin.tie(NULL);
  int n;
  cin>>n;
  int a[1000001],dp[1000001],dp2[1000001];
  for(int i=0;i<n;i++){
      cin>>a[i];
      dp[i]=a[i];
      if(i>1)
          dp[i]+=min(dp[i-1],dp[i-2]);
  }
  dp2[0]=a[0];
  for(int i=1;i<n;i++){
      dp2[i]=a[i];
      if(i>2){
          dp2[i]+=min(dp2[i-1],dp2[i-2]);
      }
  }
  if(n>1)
      cout<<min(dp[n-1],dp2[n-2]+a[0]);
  else cout<<dp[n-1];
}

Comments