60分,求助大佬
查看原帖
60分,求助大佬
558299
lzc2006楼主2022/9/7 21:27

求大佬帮忙看看思路有什么问题

#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;
} 

代码如上

2022/9/7 21:27
加载中...