Pagini recente » Borderou de evaluare (job #1582714) | Cod sursa (job #477404) | Cod sursa (job #9896) | Borderou de evaluare (job #3031861) | Cod sursa (job #3356512)
#include <bits/stdc++.h>
using namespace std;
ifstream f("secv5.in");
ofstream g("secv5.out");
int n,l,u;
vector<int> arr;
int cauta_secventa(int x) {
unordered_map<int,int> frecv;
int dist_cnt=0,final_ans=0;
int st=0;
for (int i=0;i<n;i++) {
// cout<<final_ans<<" ";
if (!frecv[arr[i]]) dist_cnt++;
frecv[arr[i]]++;
if (dist_cnt==x) {
final_ans+=(n-i);
}
while (dist_cnt>=x && st<n) {
frecv[arr[st]]--;
if (frecv[arr[st]]==0) dist_cnt--;
st++;
}
}
return final_ans;
}
int main() {
f>>n>>l>>u;
arr.resize(n);
for(int i=0;i<n;i++) {
f>>arr[i];
}
g<<cauta_secventa(l)-cauta_secventa(u+1);
}