Pagini recente » Cod sursa (job #779930) | Cod sursa (job #1521470) | Cod sursa (job #2847597) | Cod sursa (job #2938749) | Cod sursa (job #1687045)
#include <iostream>
#include <fstream>
#include <unordered_map>
using namespace std;
ifstream fin ("secv5.in");
ofstream fout ("secv5.out");
const int nmax = (1<<20) + 5;
int n, l, u;
unsigned int v[nmax];
unordered_map <unsigned int, int> h;
long long subsecv(int x) {
h.clear();
long long sol=0;
int j=1, i;
for(i=1; i<=n; i++) {
h[v[i]]++;
while(h.size() > x) {
h[v[j]]--;
if(h[v[j]]==0) h.erase(v[j]);
j++;
}
sol+=(i-j+1);
}
return sol;
}
int main() {
ios_base::sync_with_stdio(false);
int i;
fin >> n >> l >> u;
for(i=1; i<=n; i++)
fin >> v[i];
fout << subsecv(u)-subsecv(l-1);
fin.close();
fout.close();
return 0;
}