Pagini recente » Cod sursa (job #1102213) | Cod sursa (job #2085965) | Cod sursa (job #334505) | Cod sursa (job #1894630) | Cod sursa (job #3349624)
#include <bits/stdc++.h>
#define ll long long
#define ull unsigned long long
#define ld long double
#define pb push_back
#define mp make_pair
using namespace std;
constexpr const int NMAX=2e6+8;
constexpr const ll mod=1'000'000'007;
ifstream fin("secv5.in");
ofstream fout("secv5.out");
ll pw(ll baza,ll expo)
{
ll ans=1LL;
while(expo){
if(expo&1){
ans=(ans*baza)%mod;
}
expo>>=1;
baza=(baza*baza)%mod;
}
return ans;
}
int n,st,dr;
ll a[NMAX];
ll get_ans(int x) {
ll ans=0;
unordered_map<ll,int> fq;
int cnt=0,dr=0;
for(int st=1; st<=n; st++){
while(dr<=n && cnt<=x){
dr++;
fq[a[dr]]++;
if(fq[a[dr]]==1)
cnt++;
}
fq[a[dr]]--;
if(fq[a[dr]]==0)
cnt--;
dr--;
ans+=(dr-st+1);
fq[a[st]]--;
if(fq[a[st]]==0)
cnt--;
}
return ans;
}
void solve() {
fin >> n >> st >> dr;
for(int i=1; i<=n; i++)
fin >> a[i];
fout << get_ans(dr)-get_ans(st-1) << "\n";
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int tests=1;
// cin >> tests;
for(int i=1; i<=tests; i++)
solve();
return 0;
}
// you are everything i see, every time i blink, despair