Pagini recente » Cod sursa (job #2256319) | Cod sursa (job #412528) | Cod sursa (job #1239706) | Cod sursa (job #1570556) | Cod sursa (job #2047768)
#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(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) f >> v[i];
g << count(r) - count(l-1);
return 0;
}