Submission #1170881

#TimeUsernameProblemLanguageResultExecution timeMemory
1170881domblyDiversity (CEOI21_diversity)C++20
64 / 100
7001 ms27132 KiB
#include <bits/stdc++.h> #define int long long #define F first #define S second using namespace std; const int N = 2e5 + 10; const int inf = 1e16 + 7; signed main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int n, q; cin >> n >> q; vector<int> a(n + 1); for(int i = 1; i <= n; i++) cin >> a[i]; while(q--) { int l, r; cin >> l >> r; map<int,int> cnt; for(int i = l; i <= r; i++) cnt[a[i]]++; deque<int> v; vector<pair<int,int>> vec; for(auto X : cnt) vec.push_back({X.S, X.F}); sort(vec.rbegin(), vec.rend()); int pp = 1; for(auto X : vec) { for(int i = 1; i <= X.F; i++) { if(pp) v.push_front(X.S); else v.push_back(X.S); } pp ^= 1; } v.push_front(inf); int ans = 0; vector<int> p(r - l + 2); int c = 1; for(int i = 1; i <= r - l + 1; i++) { p[i] = p[i - 1] + (v[i] != v[i - 1] ? i : 1); } for(int i = 1; i <= r - l + 1; i++) ans += p[i]; cout << ans << "\n"; } }
#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...