Pagini recente » Cod sursa (job #1387992) | Cod sursa (job #1120084) | Cod sursa (job #1925838) | Cod sursa (job #200908) | Cod sursa (job #2953438)
#include <fstream>
#import <algorithm>
#import <vector>
#import <map>
#import <set>
#import <deque>
#import <queue>
#import <cassert>
//#import <cmath>
#import <cstring>
#import <cctype>
#import <cstdlib>
#import <stack>
using namespace std;
#define all(a) a.begin(),a.end()
#define int long long
vector<int>normal(vector<int>a)
{
auto v=a;
sort(all(a));
a.erase(unique(all(a)),a.end());
for(auto &c:v)
{
c=lower_bound(a.begin(),a.end(),c)-a.begin();
}
return v;
}
int val(vector<int>a,int x)
{
int l=0,n=(int)a.size();
vector<int>val(n+1,0);int cnt=0;
int rez=0;
for(int r=0;r<n;r++)
{
val[a[r]]++;
if(val[a[r]]==1)cnt++;
while(cnt>x)
{
val[a[l]]--;
if(!val[a[l]])cnt--;
l++;
}
rez+=r-l+1;
}
return rez;
}
main()
{
ifstream cin("secv5.in");
ofstream cout("secv5.out");
int n,l,r;
cin>>n>>l>>r;
vector<int>a(n);
for(auto &c:a)cin>>c;
a=normal(a);
cout<<val(a,r)-val(a,l-1);
}