Pagini recente » Cod sursa (job #1384577) | Cod sursa (job #459801) | Cod sursa (job #285444) | Cod sursa (job #2711272) | Cod sursa (job #2051702)
#include<fstream>
#include<unordered_map>
using namespace std;
ifstream fin("secv5.in");
ofstream fout("secv5.out");
const int NMAX=(1<<20)+5;
int v[NMAX],n,u,l;
void read_data(){
int i;
fin>>n>>u>>l;
for(i=1;i<=n;++i)
fin>>v[i];
}
long long cnt(int lim){
unordered_map<int,int>m;
int i,inf=1,different_els=0;
long long ans=0;
for(i=1;i<=n;++i){
if(!m[v[i]])
++different_els;
++m[v[i]];
while(different_els>lim){
--m[v[inf]];
if(!m[v[inf]]){
--different_els;
m.erase(v[inf]);
}
++inf;
}
ans+=(i-inf);
}
return ans;
}
int main(){
read_data();
fout<<cnt(l)-cnt(u-1);
}