Partial Sum(题目链接)
前缀和,比赛的时候我也是这样想的
#include<bits/stdc++.h>
#define INF 1000000000
#define ll long long
using namespace std;
ll x[123456];
ll sum;
int main()
{
std::ios::sync_with_stdio(false);
ll n,m,a,b;
while(cin>>n>>m>>a)
{
sum=0;
ll ans[123456];
ans[0]=0;
for(int i=1;i<=n;i++)
{
ll num;
cin>>num;
ans[i]=ans[i-1]+num;
}
ll cnt=0;
ll Max=0;
Max=max(Max,sum);
sort(ans,ans+1+n);
while(m--)
{
ll Pmax=ans[n--];
ll Pmin=ans[cnt++];
// cout<<Pmax<<" "<<Pmin<<endl;
sum+=abs(Pmax-Pmin)-a;
if(abs(Pmax-Pmin)-a<0) break;
Max=max(Max,sum);
}
cout<<Max<<endl;
}
return 0;
}
网上的AC大佬代码
我也是这样做的,但是没有敢提交
为什么
4 2 0
-10 3 2 1
输出13
我理解错误了,题目读错以为应该输出17,没敢交。哎····