Cod sursa(job #1282832)

Utilizator OwlreeRobert Badea Owlree Data 4 decembrie 2014 19:44:58
Problema Secventa 5 Scor 0
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2014, Anul I Marime 0.66 kb
#include <bits/stdc++.h>

using namespace std;

vector <long long> v;

long long ans(int x) {

  int n = (int)v.size();
  unordered_map<int, int> s;

  long long res = 0;

  int j = 0;
  for (int i = 0; i < n; ++i) {
    s[v[i]]++;
    while ((int)s.size() > x) {
      if (s[v[j]] == 1) {
        s.erase(v[j]);
      } else {
        s[v[j]]--;
      }
      j++;
    }
    res += (i - j + 1);
  }

  return res;

}

int main() {

  ifstream in("secv5.in");
  ofstream out("secv5.out");

  int N, L, U;
  in >> N >> L >> U;

  v.resize(N);

  for (int i = 0; i < N; ++i) {
    in >> v[i];
  }

  cout << ans(U) - ans(L - 1) << "\n";

  in.close();
  out.close();

  return 0;
}