Submission #678206

#TimeUsernameProblemLanguageResultExecution timeMemory
678206gesghaDiversity (CEOI21_diversity)C++17
4 / 100
7008 ms2260 KiB
#include <bits/stdc++.h> #define fr(i, a, b) for (int i = a; i <= b; i++) #define rf(i, a, b) for (int i = a; i >= b; i--) #define fe(x, y) for(auto& x : y) #define fi first #define se second #define pb push_back #define all(x) x.begin(), x.end() #define pw(x) (1LL << (x)) #define sz(x) (int)x.size() using namespace std; template <typename T> using ve = vector <T>; template <typename T> bool umx(T& a, T b) {return a < b ? a = b, 1 : 0;} template <typename T> bool umn(T& a, T b) {return a > b ? a = b, 1 : 0;} using ll = long long; using pii = pair <int, int>; using pll = pair <ll, ll>; const int oo = 2e9; const ll OO = 1e18; const int N = 3e5 + 100; int n, q; int a[N]; void slv(int l, int r) { ll ans = 0; ve <int> cnt(N, 0); fr(i, l, r) cnt[a[i]]++; sort(all(cnt)); ve <int> A(r - l + 1, 0); int p1 = 0, p2 = sz(A) - 1; int mv = 1; fe(x, cnt) { if (x == 0) continue; if (mv%2) { while(x > 0) { A[p1++] = mv; x--; } } else { while(x > 0) { A[p2--] = mv; x--; } } mv++; } fr(i, 0, sz(A) - 1) { map <int, int> mp; int C = 0; fr(j, i, sz(A) - 1) { if (!mp[A[j]]) C++; mp[A[j]]++; ans += C; } } cout << ans << "\n"; } int main() { #ifdef LOCAL freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); #endif // LOCAL cin.tie(0); ios_base::sync_with_stdio(0); cin >> n >> q; fr(i, 0, n - 1) cin >> a[i]; while (q--) { int l, r; cin >> l >> r; l--; r--; slv(l, r); } 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...