1 条题解
-
0
#include <bits/stdc++.h> using namespace std; typedef long long LL; const int N = 110000; LL a[N], s[N]; int n, F; bool pd(LL x) { s[0] = 0; for(int i = 1; i <= n; i++) s[i] = s[i-1] + a[i] - x; LL v = LL(1) << 62; for(int i = F; i <= n; i++) { v = min(v, s[i - F]);//v= min( s[0].. s[i-F] ) if( s[i] - v >= 0 ) return true; } return false; } int main() { scanf("%d%d", &n, &F); LL l = 0, r = 0; for(int i = 1; i <= n; i++) scanf("%lld", &a[i]), a[i] = a[i] * 1000, r += a[i]; LL ans = -1; while(l <= r) { LL mid = (l + r) / 2; if( pd(mid) ){ ans = mid; l = mid + 1;} else r = mid - 1; } printf("%lld\n", ans); return 0; }
- 1
信息
- ID
- 1126
- 时间
- 200ms
- 内存
- 64MiB
- 难度
- 8
- 标签
- 递交数
- 419
- 已通过
- 76
- 上传者