Pagini recente » Cod sursa (job #2837897) | Cod sursa (job #935940) | Cod sursa (job #1279178) | Cod sursa (job #1010478) | Cod sursa (job #2047770)
#include <bits/stdc++.h>
using namespace std;
int N;
vector<unsigned int> v;
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(fr.find(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) {int a; f >> a; v.push_back(a);};
g << count(r) - count(l-1);
return 0;
}