萌新刚学OI,54分贪心求调
查看原帖
萌新刚学OI,54分贪心求调
540363
AKPC楼主2022/11/16 21:38
#include <bits/stdc++.h>
#define IOI using
#define AK namespace
#define ME std
IOI AK ME;
#define int long long
int n,a[100001],l,r,cnt1,cnt2;
void does(int &cnt){
	if (a[l]+a[l+2]<a[l+1]&&a[r]+a[r-2]>=a[r-1]) cnt+=a[r--];
	else if (a[l]+a[l+2]>=a[l+1]&&a[r]+a[r-2]<a[r-1]) cnt+=a[l++];
	else if (a[l]>a[r]) cnt+=a[l++];
	else if (a[l]<a[r]) cnt+=a[r--];
	else if (a[l]+a[l+2]-a[l+1]>a[r]+a[r-2]+a[r-1]) cnt+=a[l++];
	else cnt+=a[r++];
}
signed main(){
	cin>>n;
	for (int i=0;i<n;i++) cin>>a[i];
	l=0,r=n-1;
	while (1){
		does(cnt1);
		if (l>r) break;
		does(cnt2);
		if (l>r) break;
	}
	cout<<cnt1<<' '<<cnt2;
	return 0;
}

不知道这个贪心有没有希望可以A

2022/11/16 21:38
加载中...