Pagini recente » Cod sursa (job #1336902) | Cod sursa (job #2975303) | Cod sursa (job #118654) | Cod sursa (job #468478) | Cod sursa (job #2259310)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("secv5.in");
ofstream fout ("secv5.out");
const int Nmax = 2e6;
unsigned int a[Nmax];
int n , L , U;
inline long long Sum(int C)
{
int j , i , nrd;
long long s;
unordered_map < unsigned int, int > M;
j = 1;
nrd = 0;
s = 0;
for(i = 1 ; i <= n ; i++)
{
++M[a[i]];
if(M[a[i]] == 1)
++nrd;
while(nrd > C && j <= i)
{
--M[a[j]];
if(M[a[j]] == 0)
--nrd;
++j;
}
s += (i - j + 1);
}
return s;
}
int main()
{
fin >> n >> L >> U;
for(int i = 1 ; i <= n ; i++)
fin >> a[i];
fout << Sum(U) - Sum(L - 1) << "\n";
fin.close();
fout.close();
return 0;
}