Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <bits/stdc++.h>using namespace std;constexpr int N = 200005;int n, a[N];long long k;long long check(long long mid) {long long maxValue = 0;int l = 1;long long sum = 0;unordered_map<int, int> cnt;for (int r = 1; r <= n; ++r) {int s = cnt[a[r]];maxValue += s;++cnt[a[r]];if (sum > mid) {while (maxValue > mid && l < r) {s = --cnt[a[l]];maxValue -= s;++l;}}sum += (r - l + 1);if (sum > k) {return sum;}}return sum;