Submission #964859

#TimeUsernameProblemLanguageResultExecution timeMemory
964859MinaRagy06Diversity (CEOI21_diversity)C++17
64 / 100
7061 ms17372 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; ll sum = 0, sum2 = 0; for (int i = n - 1; i >= 0; i--) { ans += 1ll * v[i] * (v[i] + 1) / 2; ans += 1ll * v[i] * sum2; ans -= 1ll * v[i] * (i - 1) * sum; sum += v[i]; sum2 += v[i] * i; // for (int j = i + 1; j < n; j++) { // ans += 1ll * v[i] * v[j] * j - v[i] * (i - 1) * v[j]; // } } 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...