Pagini recente » Cod sursa (job #2417148) | Cod sursa (job #1248474) | Cod sursa (job #2269449) | Cod sursa (job #267547) | Cod sursa (job #3221192)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("secv5.in");
ofstream fout("secv5.out");
const int NMax = (1 << 20) + 5;
int V[NMax];
int cnt(int P, int N){
int numar = 0, prec = 1;
int st = 1;
unordered_map<int, int> M;
for(int i=2; i<=N; ++i){
numar += prec;
M[V[i]] ++;
if(M.size() <= P){
prec += prec;
}
else{
while(M.size() > P){
M[V[st]] --;
if(M[V[st]] == 0){
M.erase(V[st]);
}
st ++;
}
}
}
return numar;
}
int main()
{
int N, L, U;
fin >> N >> L >> U;
for(int i=1; i<=N; ++i){
fin >> V[i];
}
fout << cnt(U, N) - cnt(L - 1, N);
return 0;
}