Pagini recente » Cod sursa (job #3147475) | Cod sursa (job #3187174) | Cod sursa (job #3206113) | Cod sursa (job #2558491) | Cod sursa (job #3171068)
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
using namespace std;
template <typename T>
using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
const int MAXN=1e6;
int sir[MAXN];
int n;
long long cnt(int x){
int i, j, nr;
unordered_map<int, int> frecv;
long long ans;
i=j=nr=ans=0;
while(j<n){
if(j<n && nr<=x){
frecv[sir[j]]++;
if(frecv[sir[j]]==1)
nr++;
j++;
}else{
while(nr==x+1){
frecv[sir[i]]--;
if(frecv[sir[i]]==0)
nr--;
i++;
}
}
if(nr<=x)
ans+=j-i;
}
return ans;
}
int main(){
ifstream fin("secv5.in");
ofstream fout("secv5.out");
int i, l, u;
fin>>n>>l>>u;
for(i=0; i<n; i++)
fin>>sir[i];
fout<<cnt(u)-cnt(l-1);
return 0;
}