Pagini recente » Cod sursa (job #2190166) | Cod sursa (job #919913) | Cod sursa (job #963546) | Istoria paginii utilizator/mihnea_ciobotaru | Cod sursa (job #2047766)
#include <bits/stdc++.h>
using namespace std;
int N;
unsigned int v[1050000];
ifstream f("secv5.in");
ofstream g("secv5.out");
long long count(int lim){
map <unsigned int, int> fr;
int cnt = 0;
int st = 1;
long long secv = 0LL;
for(int i = 1; i <= N; ++i){
fr[v[i]] ++;
if(fr[v[i]] == 1) ++ cnt;
while(cnt > lim){
fr[v[st]] --;
if(fr[v[st]] == 0) {fr.erase(v[st]); cnt--;}
++st;
}
secv += 1LL*(i-st+1LL);
}
return secv;
}
int main(){
int l, r;
f >> N;
f >> l >> r;
for(int i = 1; i <= N; ++i) f >> v[i];
g << count(r) - count(l-1);
return 0;
}