Cod sursa(job #2877057)
| Utilizator | Data | 24 martie 2022 09:04:26 | |
|---|---|---|---|
| Problema | Secventa 5 | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.64 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("secv5.in");
ofstream fout("secv5.out");
int n, l, u, v[(1 << 20) + 5];
long long solve(int k) {
unordered_map<int, int> m;
long long sol = 0;
for (int dr = 1, st = 1; dr <= n; dr++) {
m[v[dr]] += 1;
while (m.size() > k) {
m[v[st]] -= 1;
if (m[v[st]] == 0)
m.erase(v[st]);
st++;
}
sol += dr - st;
}
return sol;
}
int main() {
fin >> n >> l >> u;
for (int i = 1; i <= n; i++)
fin >> v[i];
fout << solve(u) - solve(l - 1);
return 0;
}