Pagini recente » Cod sursa (job #1354076) | Cod sursa (job #2454548) | Cod sursa (job #951026) | Cod sursa (job #892526) | Cod sursa (job #3330824)
#include <fstream>
#include <map>
using namespace std;
ifstream cin("secv5.in");
ofstream cout("secv5.out");
const int dim= 1048585;
int v[dim];
map <int, int> f;
int n;
int solve(int x){
int cate= 0;
int st= 1, dr= 1;
int frecv= 1;
f[v[1]]++;
while(st <= n){
if(dr < n){
if(frecv <= x){
cate+= dr- st+ 1;
//cout <<"+ "<< st<<" "<< dr<< endl;
dr++;
f[v[dr]]++;
if(f[v[dr]]== 1)
frecv++;
}
else{
f[v[st]]--;
if(f[v[st]]== 0)
frecv--;
st++;
}
}
else{
if(frecv <= x){
cate+= dr- st+ 1;
//cout <<"+ "<< st<<" "<< dr<< endl;
break;
}
f[v[st]]--;
if(f[v[st]]== 0)
frecv--;
st++;
}
}
return cate;
}
int main()
{
int i, j, a, b;
cin >> n>> a>> b;
for(i= 1;i <= n;i++){
cin >> v[i];
}
int nr1= solve(b);
f.clear();
int nr2= solve(a- 1);
//cout << nr1<<" "<< nr2<< endl;
cout << nr1- nr2;
return 0;
}