关于 ABC 的 E
查看原帖
关于 ABC 的 E
531746
Composite_Function楼主2022/12/10 21:46

WA 了一个点(恼

求调

# include <bits/stdc++.h>
using namespace std;
# define int long long
const int N = 2e5 + 10;
int n, m, k, a[N], aa[N], sum;
vector<int> val;
signed main()
{
	cin >> n >> m >> k;
	for (int i = 1; i <= n; ++i) cin >> a[i], aa[i] = a[i];
	sort(aa + 1, aa + m + 1);
	for (int i = 1; i <= m; ++i) val.push_back(aa[i]), sum += (i <= k) * aa[i];
	if (m == k) {
		cout << sum << " ";
		for (int i = 1; i <= n - m; ++i)
			sum -= a[i], sum += a[i + m], cout << sum << " ";
		return 0;
	}
	cout << sum << " ";
	for (int i = 1; i <= n - m; ++i) {
		if (a[i] <= val[k - 1]) sum -= a[i], sum += val[k];
		val.erase(lower_bound(val.begin(), val.end(), a[i]));
		if (a[i + m] <= val[k - 1]) sum += a[i + m], sum -= val[k - 1];
		val.insert(upper_bound(val.begin(), val.end(), a[i + m]), a[i + m]);
		cout << sum << " ";
	}
	return 0;
}
2022/12/10 21:46
加载中...