Pagini recente » Cod sursa (job #2130908) | Istoria paginii runda/rep | Istoria paginii runda/wellcodesimulareclasa10-10martie/clasament | Istoria paginii runda/0001/clasament | Cod sursa (job #1561706)
#include <bits/stdc++.h>
#define int64 long long
using namespace std;
ifstream in("secv5.in");
ofstream out("secv5.out");
unsigned a[1111111],n,x,y,k;
vector<unsigned> v;
int64 solve(int64 t)
{
v=vector<unsigned> (k+1);
int64 sol=0,last=1,cnt=0;
for(unsigned i=1;i<=n;i++)
{
if(v[a[i]]==0)
cnt++;
v[a[i]]++;
while(cnt>t)
{
v[a[last]]--;
if(v[a[last]]==0)
cnt--;
last++;
}
sol+=(i-last+1);
}
return sol;
}
int main()
{
in>>n>>x>>y;
map<int64,unsigned> h;
for(unsigned i=1;i<=n;i++)
{
int64 nr;
in>>nr;
if(h[nr]==0)
h[nr]=++k;
a[i]=h[nr];
}
out<<solve(y)-solve(x-1)<<'\n';
return 0;
}