Pagini recente » Cod sursa (job #1539786) | Cod sursa (job #2277708) | Cod sursa (job #2989769) | Cod sursa (job #1583921) | Cod sursa (job #2849166)
#define boostIO ios_base::sync_with_stdio(false); fin.tie(nullptr); fout.tie(nullptr);
#pragma GCC optimize ("Ofast")
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("secvmax.in");
ofstream fout ("secvmax.out");
const int MAX_N = 1050000;
int v[MAX_N];
int n, lower, upper;
unordered_map <int, int> freq;
int solve(int limit){
freq.clear();
int answer = 0, st = 1, dif = 0;
for(int i=1; i<=n; i++){
if(++freq[v[i]] == 1) dif++;
while(st <= i && dif > limit)
if(--freq[v[st++]] == 0)
dif--;
answer += i-st+1;
}
return answer;
}
signed main (){
boostIO
fin>>n>>lower>>upper;
for(int i=1; i<=n; i++)
fin>>v[i];
fout<<solve(upper) - solve(lower-1);
return 0;
}