제출 #572457

#제출 시각아이디문제언어결과실행 시간메모리
572457valerikkDiversity (CEOI21_diversity)C++17
14 / 100
7054 ms2172 KiB
#include <bits/stdc++.h>

using namespace std;

int cnt[300001];

int main() {
	ios::sync_with_stdio(false);
	cin.tie(0);

	int n, Q;
	cin >> n >> Q;

	vector<int> a(n);
	for (int i = 0; i < n; ++i) {
		cin >> a[i];
	}

	for (int i = 0; i < n; ++i) {
		++cnt[a[i]];
	}

	vector<int> x;
	for (int i = 1; i <= 300000; ++i) {
		if (cnt[i] > 0) 
			x.push_back(cnt[i]);
	}

	sort(x.begin(), x.end());

	int k = x.size();

	long long ans = 1e18;
	do {
		long long cur = n * 1ll * (n + 1) / 2 * k;
		long long sum = 0;
		for (int i = 0; i < k; ++i) {
			cur -= sum * (sum + 1) / 2;
			sum += x[i];
		}
		sum = 0;
		for (int i = k - 1; i >= 0; --i) {
			cur -= sum * (sum + 1) / 2;
			sum += x[i];
		}
		ans = min(ans, cur);
	} while (next_permutation(x.begin(), x.end()));

	cout << ans << endl;

	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...