| Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|---|
| 199819 | wuyixiang | 早凉与序列4 | C++ | 解答错误 | 0 | 82 MS | 3364 KB | 608 | 2025-11-22 10:35:50 |
#include <iostream> #define int long long using namespace std; int n,k,x,a[200005],qian[200005]; int l,r; int check(int mi) { int ans = -1e18; for(int i = mi;i <= n;i ++)ans = max(ans,qian[i] - qian[i - mi] + (min(mi,k) - mi + min(mi,k)) * x); return ans; } signed main() { cin >> n >> k >> x; if(x < 0)k = n - k,x = -x; for(int i = 1;i <= n;i ++)cin >> a[i],qian[i] = qian[i - 1] + a[i]; r = n; while(l < r) { int mid = (l + r) >> 1; if(check(mid) > check(mid + 1))r = mid; else l = mid + 1; } cout << check(l); }