Pagini recente » Cod sursa (job #396126) | Cod sursa (job #900500) | Cod sursa (job #308497) | Cod sursa (job #2567476) | Cod sursa (job #2524696)
#include <fstream>
#include <map>
using namespace std;
ifstream cin ("secv5.in");
ofstream cout ("secv5.out");
int n, l, u;
long long ans;
unsigned v[1048580];
map <unsigned, int> st, dr;
int main() {
cin >> n >> l >> u;
for(int i = 1; i <= n; i++)
cin >> v[i];
int j1 = 1, j2 = 1;
for(int i = 1; i <= n; i++) {
st[v[i]]++; dr[v[i]]++;
while(st.size() >= l) {
st[v[j1]]--;
if(!st[v[j1]])
st.erase(v[j1]);
j1++;
}
while(dr.size() > u) {
dr[v[j2]]--;
if(!dr[v[j2]])
dr.erase(v[j2]);
j2++;
}
ans += j1 - j2;
}
cout << ans;
return 0;
}