Pagini recente » Cod sursa (job #2643181) | Cod sursa (job #2877303) | Cod sursa (job #1425399) | Cod sursa (job #2465887) | Cod sursa (job #2420085)
#include <fstream>
#include <unordered_map>
using namespace std;
ifstream fin ("secv5.in");
ofstream fout ("secv5.out");
const int NMAX = 1 << 20 + 3;
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;
}