Pagini recente » Cod sursa (job #2063120) | Cod sursa (job #107665) | Cod sursa (job #135548) | Cod sursa (job #265098) | Cod sursa (job #716107)
Cod sursa(job #716107)
#include<iostream>
#include<fstream>
#include<ext/hash_map>
using namespace std;
using namespace __gnu_cxx;
ifstream in("secv5.in");
ofstream out("secv5.out");
unsigned int n,l,u,x[1000010],st,dr;
hash_map<unsigned int,unsigned int> h;
inline unsigned int sol(unsigned int dim) {
h.clear();
if(!dim)
return 0;
unsigned int sol=0,nr=0;
for(st=1, dr=1; dr<=n; ++dr) {
if(!h[x[dr]])
++nr;
h[x[dr]]++;
while(nr>dim) {
if(h[x[st]]==1)
--nr;
h[x[st]]--;
++st;
}
sol += dr - st + 1;
}
return sol;
}
int main() {
unsigned int i;
in >> n >> l >> u;
for(i=1;i<=n;++i) {
in >> x[i];
}
out << sol(u) - sol(l-1) << "\n";
return 0;
}