社区讨论

60pts求助

P9742 「KDOI-06-J」贡献系统参与者 3已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@lo1266cf
此快照首次捕获于
2023/10/22 13:58
2 年前
此快照最后确认于
2023/11/02 13:28
2 年前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N = 2e5+10;
int t,n,r[N],c[N],pre[N];
int sum,posr,posl,maxn1,maxn2;
signed main(){
	cin>>t;
	while(t--){
		cin>>n;
		sum=maxn1=maxn2=0;
		for(int i=1;i<=n;i++){
			cin>>r[i];
		}
		for(int i=1;i<=n;i++){
			cin>>c[i];
			pre[i]=pre[i-1]+abs(c[i]);
		}
		for(int i=1;i<=n;i++){
			if(c[i]<=0){
				posl=i;
				break;
			}
		}
		for(int i=n;i>=1;i--){
			if(c[i]>=0){
				posr=i;
				break;
			}
		}
		sum=pre[posr]-pre[posl-1];
		for(int i=1;i<=posl-1;i++){
			maxn1=max(pre[posl-1]-pre[i]-c[i],maxn1);
		}
		for(int i=n;i>=posr+1;i--){
			maxn2=max(maxn2,pre[i-1]-pre[posr]+c[i]);
		}
		cout<<sum+maxn1+maxn2<<endl;
	}
	return 0;
}

回复

2 条回复,欢迎继续交流。

正在加载回复...