Pagini recente » Cod sursa (job #1911818) | Cod sursa (job #693434) | Cod sursa (job #793042) | Cod sursa (job #329744) | Cod sursa (job #1279135)
//Deresu Roberto - FMI
//Re :)
#include<fstream>
#include<map>
#define nx 1100007
using namespace std;
int n,l,u,v[nx];
map<int,int>mymap;
map<int,int> :: iterator it;
ifstream fin("secv5.in");
ofstream fout("secv5.out");
int secv(int l)
{
int nr, i, j;
nr =0;
j = 1;
for(i=1;i<=n;i++)
{
it = mymap.find(v[i]);
if(it != mymap.end())
it->second ++;
else
mymap.insert(make_pair(v[i],1));
if(mymap.size() > l)
{
nr += (i-j)*(i-j+1)/2;
while(mymap.size() > l)
{
it = mymap.find(v[j++]);
it->second --;
if(it->second == 0)
mymap.erase(it);
}
}
}
nr += (i-j)*(i-j+1)/2;
mymap.clear();
return nr;
}
int main()
{
fin>>n>>l>>u;
for(int i=1;i<=n;i++)
fin>>v[i];
int nrl = secv(l-1);
int nru = secv(u);
fout<<nru-nrl;
return 0;
}