This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <iostream>
#include <vector>
#include <algorithm>
#include <cassert>
#include <cstring>
#include <set>
#warning That's the baby, that's not my baby
typedef long long ll;
const int NMAX = 3e5;
int a[NMAX + 1];
int f[15];
int main() {
  std::ios_base::sync_with_stdio(false);
  std::cin.tie(0);
  int n, q;
  std::cin >> n >> q;
  std::vector<int> norm;
  for (int i = 1; i <= n; i++) {
    std::cin >> a[i];
    norm.push_back(a[i]);
  }
  std::sort(norm.begin(), norm.end());
  norm.erase(std::unique(norm.begin(), norm.end()));
  for (int i = 1; i <= n; i++) {
    a[i] = std::lower_bound(norm.begin(), norm.end(), a[i]) - norm.begin();
  }
  while (q--) {
    int l, r;
    std::cin >> l >> r;
    std::vector<int> b;
    for (int i = l; i <= r; i++) {
      b.push_back(a[i]);
    }
    std::sort(b.begin(), b.end());
    int m = (int) b.size();
    int answer = 1e9;
    do {
      int cur = 0;
      for (int i = 0; i < m; i++) {
        int cnt = 0;
        memset(f, 0, sizeof(f));
        for (int j = i; j < m; j++) {
          if (!f[b[j]]) {
            cnt++;
            f[b[j]] = 1;
          }
          cur += cnt;
        }
      }
      answer = std::min(answer, cur);
    } while (std::next_permutation(b.begin(), b.end()));
    std::cout << answer << '\n';
  }
  return 0;
}
Compilation message (stderr)
diversity.cpp:7:2: warning: #warning That's the baby, that's not my baby [-Wcpp]
    7 | #warning That's the baby, that's not my baby
      |  ^~~~~~~| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |