Pagini recente » Borderou de evaluare (job #1720535) | Borderou de evaluare (job #625367) | Borderou de evaluare (job #252705) | Borderou de evaluare (job #1280566) | Cod sursa (job #3274394)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("secv5.in");
ofstream fout("secv5.out");
/**
U = 2 L = 3
i
3 3 1 2 2
j
1 2 3
fr = 1 1 0
nr = 2
U = 1 + 2
*/
int l, u, n;
long long a[1100000];
unordered_map <long long, int> m;
long long nr(int lim)
{
int i = 1, j = 1, cnt = 0;
long long secv = 0;
m.clear();
while (i <= n)
{
if (m[a[i]] == 0)
++cnt;
m[a[i]]++;
while (cnt > lim)
{
m[a[j]]--;
if (m[a[j]] == 0)
--cnt;
j++;
}
secv += (i - j + 1);
i++;
}
return secv;
}
int main()
{
int i;
fin >> n >> l >> u;
for (i = 1 ; i <= n ; i++)
fin >> a[i];
fout << nr(u) - nr(l-1);
return 0;
}