#include #define INF 0x7f7f7f7f #define N 1005 #define Ms(a,b) memset(a,b,sizeof a) //#define db(x) cout<<#x<<"="<r[i]; j--) if(x[j]&1)Min1=min(Min1,dp[i-1][j]+x[j]/2); else Min2=min(Min2,dp[i-1][j]+x[j]/2); for(int j=r[i]; j>=l[i]; j--) { if(x[j]&1)Min1=min(Min1,dp[i-1][j]+x[j]/2); else Min2=min(Min2,dp[i-1][j]+x[j]/2); if(x[j]&1) { tomin(dp[i][j],Min1-x[j]/2); tomin(dp[i][j],Min2-x[j]/2); } else { tomin(dp[i][j],Min1-x[j]/2+1); tomin(dp[i][j],Min2-x[j]/2); } } } int ans=INF; for(int i=l[n]; i<=r[n]; i++)ans=min(ans,dp[n][i]); printf("%d\n",ans); } return 0; }