社区讨论
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 条回复,欢迎继续交流。
正在加载回复...