Pagini recente » Cod sursa (job #2701700) | Cod sursa (job #3273293) | Cod sursa (job #3296242) | Cod sursa (job #2620901) | Cod sursa (job #3298254)
#include <iostream>
#include <fstream>
#include <unordered_map>
using namespace std;
ifstream f("secv5.in");
ofstream g("secv5.out");
unsigned int v[1048600];
int n;
long long nrsecv(int k)
{
unordered_map<unsigned int, int> m;
long long inceput=1,cnt=0,sol=0;
for(int i=1;i<=n;i++)
{
m[v[i]]++;
if(m[v[i]]==1) cnt++;
while(cnt>k)
{
m[v[inceput]]--;
if(m[v[inceput]]==0){
cnt--;
m.erase(v[inceput]);
}
inceput++;
}
sol+=(i-inceput+1);
}
return sol;
}
int main()
{
int l,u;
f>>n>>l>>u;
for(int i=1;i<=n;i++)
{
f>>v[i];
}
g<<nrsecv(u)-nrsecv(l-1);
g.close();
f.close();
return 0;
}