Pagini recente » Cod sursa (job #496025) | Cod sursa (job #1716003) | Cod sursa (job #634372) | Cod sursa (job #293809) | Cod sursa (job #1995162)
#include <iostream>
#include <fstream>
#include <unordered_map>
using namespace std;
int N, L, U;
int nr[1050000];
long long functie(int x)
{
unordered_map<int, int> aparitii;
int i, j=1;
long long int s=0;
for (i=1;i<=N;++i)
{
aparitii[nr[i]]++;
if(aparitii[nr[i]]==1)
while(aparitii.size() > x)
{
aparitii[nr[j]]--;
if(!aparitii[nr[j]])
{
aparitii.erase(nr[j]);
}
++j;
}
s=s+i-j+1;
}
return s;
}
int main()
{
int i;
ifstream in ("secv5.in");
ofstream out ("secv5.out");
in>>N>>L>>U;
for (i=1;i<=N;++i)
in>>nr[i];
out<<functie(U) - functie(L-1)<<"\n";
return 0;
}