Pagini recente » Monitorul de evaluare | Cod sursa (job #1085024) | Cod sursa (job #838567) | Cod sursa (job #2315860) | Cod sursa (job #3258701)
#include <fstream>
#include <unordered_map>
#include <vector>
#include <algorithm>
#include <cstdint>
#include <deque>
#define int long long
using namespace std;
ifstream cin("secv5.in");
ofstream cout("secv5.out");
int v[1048577];
int n,l,u;
int check(int x) {
int fp = 0,sp = 0,c = 0,ans = 0;
unordered_map<int,int> vf;
while (sp < n) {
vf[v[sp]] ++;
if (vf[v[sp]] == 1) c++;
while (c > x) {
vf[v[fp]] --;
if (vf[v[fp]] == 0) c--;
fp++;
}
ans += sp - fp;
sp++;
}
return ans;
}
int32_t main() {
cin>>n>>l>>u;
for (int i=0; i<n; i++) {
cin>>v[i];
}
cout<<check(u) - check(l-1);
}