求大佬帮忙看看思路有什么问题
#include<bits/stdc++.h>
using namespace std;
long long n,a[1000010],f[1000010][3];
int find_min(int a,int b,int c){
int minx=a;
if(b<minx){minx=b;}
if(c<minx){minx=c;}
return minx;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
if(a[1]!=-1){
cout<<"BRAK"<<endl;
return 0;
}
for(int i=2;i<=n;i++){
f[i][0]=f[i-1][0]+a[i]+1;
f[i][1]=min(f[i-1][1],f[i-1][0])+1;
f[i][2]=find_min(f[i-1][0],f[i-1][1],f[i-1][2])-a[i]+1;
}
cout<<find_min(f[n][0],f[n][1],f[n][2])<<endl;
return 0;
}
代码如上