Submission #964855

#TimeUsernameProblemLanguageResultExecution timeMemory
964855MinaRagy06Diversity (CEOI21_diversity)C++17
38 / 100
7039 ms8852 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
 
int main() {
	ios_base::sync_with_stdio(0), cin.tie(0);
	int n, q;
	cin >> n >> q;
	int a[n];
	for (int i = 0; i < n; i++) {
		cin >> a[i];
	}
	while (q--) {
		int l, r;
		cin >> l >> r;
		l--, r--;
		map<int, int> frq;
		for (int i = l; i <= r; i++) {
			frq[a[i]]++;
		}
		vector<int> t;
		for (auto [x, cnt] : frq) {
			t.push_back(cnt);
		}
		sort(t.rbegin(), t.rend());
		deque<int> v;
		int cur = 0;
		for (auto j : t) {
			if (cur & 1) {
				v.push_back(j);
			} else {
				v.push_front(j);
			}
			cur ^= 1;
		}
		n = v.size();
		ll ans = 0;
		for (int i = 0; i < n; i++) {
			ans += 1ll * v[i] * (v[i] + 1) / 2;
			for (int j = i + 1; j < n; j++) {
				ans += 1ll * v[i] * v[j] * (j - i + 1);
			}
		}
		cout << ans << '\n';
	}
	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...