Pagini recente » Cod sursa (job #1812153) | Cod sursa (job #1840195) | Cod sursa (job #2861032) | Cod sursa (job #2927779) | Cod sursa (job #1995164)
#include <iostream>
#include <fstream>
#include <unordered_map>
using namespace std;
int N, L, U;
unsigned int nr[1050000];
long long functie(int x)
{
unordered_map<unsigned 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;
}