CF1486D #10 WA
查看原帖
CF1486D #10 WA
520777
LaoXu666楼主2023/7/26 11:18
#include <iostream>

int N, K, Arr[200005], Tag[200005], TagSum[200005], TagSumMin[200005];

bool Check(int X) {
	for (int i = 1; i <= N; i++) {
		Tag[i] = ((Arr[i] >= X) ? (1) : (-1));
	}
	TagSumMin[0] = 0x3F3F3F3F;
	for (int i = 1; i <= N; i++) {
		TagSum[i] = TagSum[i - 1] + Tag[i];
		TagSumMin[i] = std::min(TagSumMin[i - 1], TagSum[i]);
	}
	for (int i = K; i <= N; i++) {
		if (TagSum[i] - TagSumMin[i - K] > 0) return true;
	}
	return false;
}

int main() {
	std::cin >> N >> K;
	for (int i = 1; i <= N; i++) std::cin >> Arr[i];
	int L = 0, R = 2147483647;
	while (L + 1 != R) {
		int Mid = (L + R) >> 1;
		if (Check(Mid)) L = Mid;
		else R = Mid;
	}
	std::cout << L << '\n';
	return 0;
}

第10个测评点WA

另一个网站AC

2023/7/26 11:18
加载中...