40分求助
查看原帖
40分求助
328413
cyxg楼主2022/11/12 21:58
#include<bits/stdc++.h>
using namespace std;
int n,a[1001],f[1001],he[1001],maxx,minn=949992,hebing[1001];
int main(){
	cin>>n;
	for(int i=1;i<=n;i++) {
		cin>>a[i];
		a[i+n]=a[i];
	}

	for(int st=1;st<=n;st++){
	f[st]=0;
	f[st+1]=a[st]+a[st+1];
	for(int t=st;t<=n+st;t++){
		he[t]=he[t-1]+a[t];
		he[t+n]=he[t];
	}
	he[st]=0;
	for(int i=st+2;i<=n+st+2;i++){
	//	hebing[i]=min(he[i-1]+he[i],he[i-2]+)
		f[i]=min(f[i-1]+he[i],f[i-2]+he[i]+a[i]+a[i-1]);
	}
	minn=min(minn,f[n+st-1]);
	memset(he,0,sizeof(he));
}
	for(int st=1;st<=n;st++){
	f[st]=0;
	f[st+1]=a[st]+a[st+1];
	for(int t=st;t<=n+st;t++){
		he[t]=he[t-1]+a[t];
		he[t+n]=he[t];
	}
 	he[st]=0;
	for(int i=st+2;i<=n+st;i++){
		f[i]=max(f[i-1]+he[i],f[i-2]+he[i]+a[i]+a[i-1]);
	}
	maxx=max(maxx,f[n+st-1]);
	memset(he,0,sizeof(he));
}
	cout<<minn<<endl<<maxx;
	return 0;
}
2022/11/12 21:58
加载中...