Pagini recente » Cod sursa (job #2610097) | Cod sursa (job #2899370) | Cod sursa (job #1757785) | Cod sursa (job #2532927) | Cod sursa (job #2420089)
#include <fstream>
#include <unordered_map>
using namespace std;
ifstream fin ("secv5.in");
ofstream fout ("secv5.out");
const int NMAX = 1 << 20 + 3;
unsigned int N, L, U;
unsigned int v [NMAX];
unordered_map <unsigned int, int> mp;
long long Solve (int k){
mp.clear ();
long long I = 1;
long long ans = 0;
for (int i = 1; i <= N; i ++){
mp [v [i]] ++;
while (mp.size() > k){
mp [v [I]] --;
if (mp [v [I]] == 0)
mp.erase (v [I]);
I ++;
}
ans += i - 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;
}