Pagini recente » Cod sursa (job #1655883) | Cod sursa (job #2800951) | Cod sursa (job #2419438) | Cod sursa (job #1799044) | Cod sursa (job #2038985)
#include <bits/stdc++.h>
using namespace std;
int a[1024 * 1024 + 20], n, L, U;
///cate secvente au cel mult k valori distincte
unsigned long long NrSecvente(unsigned int K)
{
unordered_map <unsigned, int> m;
long long cnt = 0, j = 1;
for(int i = 1; i <= n; i++)
{
m[a[i]]++;
while(m.size() > K)
{
m[a[j]]--;
if(m[a[j]]==0)
m.erase(a[j]);
j++;
}
cnt += (i - j + 1);
}
return cnt;
}
void Read()
{
ifstream fin("secv5.in");
fin >> n >> L >> U;
for(int i = 1; i <= n; i++)
fin >> a[i];
fin.close();
}
int main()
{
Read();
ofstream fout("secv5.out");
fout << NrSecvente(U) - NrSecvente(L - 1) << "\n";
return 0;
}