Pagini recente » Cod sursa (job #1421180) | Cod sursa (job #351570) | Cod sursa (job #1122733) | Cod sursa (job #3319915) | Cod sursa (job #3349847)
#include <fstream>
#include <vector>
#include <unordered_map>
using namespace std;
ifstream cin("secv5.in");
ofstream cout("secv5.out");
int n, l, u;
int v[1000001];
int res(int k) {
unordered_map<int, int> fr;
int st = 1;
int diferite = 0;
int ans = 0;
for(int dr = 1; dr <= n; ++dr) {
if(fr[v[dr]] == 0) {
diferite++;
}
fr[v[dr]]++;
while(diferite > k) {
fr[v[st]]--;
if(fr[v[st]] == 0) {
diferite--;
}
st++;
}
ans += (dr - st + 1);
}
return ans;
}
int main() {
cin >> n >> l >> u;
for(int i = 1; i <= n; ++i) {
cin >> v[i];
}
cout << res(u) - res(l - 1);
return 0;
}