Pagini recente » Cod sursa (job #1265166) | Cod sursa (job #2067919) | Cod sursa (job #2023977) | Cod sursa (job #2193864) | Cod sursa (job #2849101)
#include <bits/stdc++.h>
#define nmax 1005000
#define int long long
#pragma GCC optimize("Ofast")
using namespace std;
int v[nmax + 1], c[nmax + 1], cpart[nmax + 1], n;
unordered_map<int, int> f;
int rez(int x)
{
if (x == 0)
return 0;
int i, cnt = 0, dr = 0;
f.clear();
for (i = 1; i <= n; i++)
{
while (dr < n && f.size() < x)
f[v[++dr]]++;
while (f[v[dr + 1]] != 0)
f[v[++dr]]++;
if (f[v[dr + 1]] == 0)
f.erase(v[dr + 1]);
cnt += dr - i + 1;
f[v[i]]--;
if (f[v[i]] == 0)
f.erase(v[i]);
}
return cnt;
}
signed main()
{
ifstream cin("secv5.in");
ofstream cout("secv5.out");
int l, u, p = 0, a, i, st, dr, cnt = 0;
ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
cin >> n >> l >> u;
for (i = 1; i <= n; i++)
cin >> v[i];
cout << rez(u) - rez(l - 1);
return 0;
}