Pagini recente » Cod sursa (job #2836008) | Cod sursa (job #1565088) | Cod sursa (job #236813) | Cod sursa (job #2684182) | Cod sursa (job #2420084)
#include <bits/stdc++.h>
#include <unordered_map>
using namespace std;
ifstream fin ("secv5.in");
ofstream fout ("secv5.out");
const int NMAX = (1 << 20) + 10;
int N, L, U;
int v [NMAX];
long long Solve (int k){
unordered_map <unsigned int, int> mp;
long long ans = 0;
for (int i = 1, j = 1; j <= N; j ++){
mp [v [j]] ++;
while (mp.size () > k){
mp [v [i]] --;
if (mp [v [i]] == 0)
mp.erase (v [i]);
i ++;
}
ans = 1LL * ans + j - i + 1;
}
return ans;
}
int main (){
fin >> N >> L >> U;
for (int i = 1; i <= N; i ++)
fin >> v [i];
fout << Solve (U) - Solve (L - 1);
return 0;
}