编译信息
编译成功
RecordIDError: cannot get remote rid of record 151789398
#include <bits/stdc++.h>
using namespace std;
const int N=300010;
long long t,n,c,a[N],sum[N],minn,maxx;
int main()
{
scanf("%lld%lld",&n,&c);
for(int i=1;i<=n;i++)//输入+前缀和
{
scanf("%lld",&a[i]);
sum[i]=sum[i-1]+a[i];
}
if(c==1)//特判
{
printf("%lld\n",sum[n]);
return 0;
}
if(c>1)
{
for(int i=1;i<=n;i++)
{
minn=min(minn,sum[i]);
t=max(t,sum[i]-minn);//最大区间和
}
printf("%lld\n",t*(c-1)+sum[n]);
}
else
{
for(int i=1;i<=n;i++)
{
maxx=max(maxx,sum[i]);
t=min(t,sum[i]-maxx);//最小区间和
}
printf("%lld\n",t*(c-1)+sum[n]);
}
return 0;
}
Atcoder上都AC了