Pagini recente » Cod sursa (job #127338) | Cod sursa (job #68929) | Cod sursa (job #2170185) | Cod sursa (job #1896383) | Cod sursa (job #2863609)
#include <iostream>
#include <fstream>
#include <unordered_map>
using namespace std;
ifstream fin("secv5.in");
ofstream fout("secv5.out");
int n,u,l;
unsigned int v[1<<20+1];
unordered_map < unsigned int , int > ap;
long long secv(int k)
{
ap.clear();
long long st=1,cnt=0;
for(int dr=1;dr<=n;dr++)
{
ap[v[dr]]++;
while(ap.size()>k)
{
ap[v[st]]--;
if(ap[v[st]]==0)
ap.erase(v[st]);
st++;
}
cnt+=dr-st+1;
}
return cnt;
}
int main()
{
fin >> n >> l >> u;
for(int i=1;i<=n;i++)
fin >> v[i];
fout << secv(u)-secv(l-1);
return 0;
}