Pagini recente » Cod sursa (job #1311521) | Cod sursa (job #797981) | Cod sursa (job #660295) | Cod sursa (job #543815) | Cod sursa (job #2885055)
#include<iostream>
#include<fstream>
#include<vector>
#include<algorithm>
#include<unordered_map>
using namespace std;
ifstream in("secv5.in");
ofstream out("secv5.out");
const int mx=(1<<20)+100;
struct element{
int value,count;
};
int n,l,u;
vector<int> v;
void read(){
in>>n>>l>>u;
v.resize(n);
for(int i=0;i<n;i++){
in>>v[i];
}
}
long long solve(unsigned k){
unordered_map<int,int> values;
values[v[0]]++;
unsigned l=0,current=1;
long long sum=1;
for(int i=1;i<n;i++){
values[v[i]]++;
while(values.size()>k){
values[v[l]]--;
if(values[v[l]]==0){
values.erase(values.find(v[l]));
}
l++;
current--;
}
sum+=current;
current++;
}
return sum;
}
void solve(){
out<<solve(u)-solve(l-1);
}
int main(){
read();
solve();
return 0;
}