Pagini recente » Cod sursa (job #1019410) | Cod sursa (job #523292) | Cod sursa (job #905440) | Cod sursa (job #1604000) | Cod sursa (job #2683270)
#include <bits/stdc++.h>
using namespace std;
ifstream in("secv5.in");
ofstream out("secv5.out");
typedef long long ll;
const int lim=(1<<20)+5;
unordered_multiset<int> s;
int v[lim],n;
ll nr(int d)
{
ll ans=0;
s.clear();
if(d==0) return ans;
int cnt=0,st=1;
for(int dr=1;dr<=n;++dr)
{
if(s.find(v[dr])==s.end())
cnt++;
s.insert(v[dr]);
if(cnt<=d) ans+=1LL*(dr-st+1);
else
{
while(cnt>d)
{
s.erase(s.find(v[st]));
if(s.find(v[st])==s.end()) --cnt;
++st;
}
ans+=1LL*(dr-st+1);
}
}
return ans;
}
int main()
{
int l,u;
in>>n>>l>>u;
for(int i=1;i<=n;++i)
in>>v[i];
out<<nr(u)-nr(l-1)<<'\n';
return 0;
}