Pagini recente » Cod sursa (job #1814114) | Cod sursa (job #1395864) | Cod sursa (job #3141587) | Cod sursa (job #444725) | Cod sursa (job #3185792)
#include <fstream>
#include <unordered_map>
using namespace std;
ifstream cin("secv5.in");
ofstream cout("secv5.out");
unordered_map<long long,int> frv;
long long v[1048577];
int main()
{
long long n,rasp=0,cnt=1,i,j,u,l;
cin>>n>>u>>l;
for(i=1;i<=n;i++) cin>>v[i];
j=1;
frv[v[1]]=1;
///pana la l
for(i=1;i<=n;i++){
while(j<=n && cnt<=l){
j++;
if(j<=n){
if(frv[v[j]]==0) cnt++;
frv[v[j]]++;
}
}
rasp+=j-i;
frv[v[i]]--;
if(frv[v[i]]==0) cnt--;
}
frv.clear();
///pana la u-1
j=cnt=1;
frv[v[1]]=1;
for(i=1;i<=n;i++){
while(j<=n && cnt<=u-1){
j++;
if(j<=n){
if(frv[v[j]]==0) cnt++;
frv[v[j]]++;
}
}
rasp-=(j-i);
frv[v[i]]--;
if(frv[v[i]]==0) cnt--;
}
cout<<rasp;
return 0;
}