Pagini recente » Cod sursa (job #2401357) | Cod sursa (job #1866495) | Cod sursa (job #3126664) | Cod sursa (job #1478238) | Cod sursa (job #3182131)
/**
* Author: Andu Scheusan (not_andu)
* Created: 08.12.2023 17:12:23
*/
#include <bits/stdc++.h>
#include <unordered_map>
#pragma GCC optimize("O3")
using namespace std;
#define INFILE "secv5.in"
#define OUTFILE "secv5.out"
typedef long long ll;
const int VMAX = 1048581;
int n, lowLimit, upLimit;
int v[VMAX];
int getMaxDistincts(int k){
unordered_map<int, int> fr;
int left = 1;
ll ans = 0;
for(int i = 1; i <= n; ++i){
++fr[v[i]];
while(fr.size() > k){
--fr[v[left]];
if(!fr[v[left]]){
fr.erase(v[left]);
}
++left;
}
ans += i - left + 1;
}
return ans;
}
void solve(){
cin >> n >> lowLimit >> upLimit;
for(int i = 1; i <= n; ++i) cin >> v[i];
cout << getMaxDistincts(upLimit) - getMaxDistincts(lowLimit - 1) << '\n';
}
int main(){
ios_base::sync_with_stdio(false);
freopen(INFILE, "r", stdin);
freopen(OUTFILE, "w", stdout);
cin.tie(nullptr);
cout.tie(nullptr);
solve();
return 0;
}