Pagini recente » Cod sursa (job #347786) | Cod sursa (job #512406) | Cod sursa (job #1984162) | Cod sursa (job #1981681) | Cod sursa (job #2990401)
#include <bits/stdc++.h>
using namespace std;
ifstream in("secv5.in");
ofstream out("secv5.out");
unordered_map<unsigned int, unsigned int> f;
const unsigned int N = 1050000;
unsigned int n;
unsigned int v[N + 5];
int ceva(int a) {
unsigned int ans = 0;
unsigned int cnt = 0;
unsigned int l = 1, r;
for(r = 1; r <= n; ++ r) {
if(f[v[r]] == 0)
cnt++;
f[v[r]] ++;
while(cnt > a && l <= r) {
f[v[l]] --;
if(f[v[l]] == 0)
cnt --;
l ++;
}
ans += r - l + 1;
}
return ans;
}
int main() {
unsigned int l, u;
in >> n >> l >> u;
for(unsigned int i = 1; i <= n; ++ i) {
in >> v[i];
}
out << ceva(u) - ceva(l - 1);
return 0;
}