求找错qwq
查看原帖
求找错qwq
323989
Vector_Mingfan楼主2021/8/8 01:13
#include <bits/stdc++.h>
#define N 10^6+5

using namespace std;

long long n, m, arr[N], maxn, sum[N];

int main() {
	
	cin >> n >> m;
	for (long long i=1; i<=n; i++ ) {
		cin >> arr[i];
		arr[i] = arr[i] * 10000;
		maxn = max(maxn, arr[i]);
	}
	
	long long l = 0, r = maxn;
	while (l <= r) {
		bool flag = 0;
		long long mid = (l + r) / 2, minn = 0;
		for (long long i=1; i<=n; i++ ) {
			sum[i] = sum[i - 1] + (arr[i] - mid);
			if (i >= m) {
				minn = min(minn, sum[i - m]);
				if (sum[i] > minn) {
					flag = 1;
					break;
				}
			}
		}
		if (flag) 
			l = mid + 1;
		else 
			r = mid - 1;
	}
	cout << (l / 10) << "\n";
	return 0;
}
2021/8/8 01:13
加载中...