Submission #1170865

#TimeUsernameProblemLanguageResultExecution timeMemory
1170865domblyDiversity (CEOI21_diversity)C++20
4 / 100
7091 ms1864 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 p = 1;
    for(auto X : vec) {
      for(int i = 1; i <= X.F; i++) {
        if(p) v.push_front(X.S);
        else v.push_back(X.S);
      }
      p ^= 1;
    }
    int ans = 0;
    for(int i = 0; i < r - l + 1; i++) {
      set<int> st;
      for(int j = i; j < r - l + 1; j++) {
        st.insert(v[j]);
        ans += (int)st.size();
      }
    }
    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...