Pagini recente » Cod sursa (job #2787986) | Cod sursa (job #252282) | Cod sursa (job #2943183) | Cod sursa (job #3164171) | Cod sursa (job #3226166)
#include <bits/stdc++.h>
#define QED fin.close(); fout.close(); return 0;
using namespace std;
ifstream fin("secv5.in");
ofstream fout("secv5.out");
#define cin fin
#define cout fout
const int NMAX = 1 << 20 + 1;
unsigned int a[NMAX + 1], n;
long long solutie(int k) ///nr de subsecv cu maximum k elem distincte
{
unordered_map<int, int> m;
long long l = 1, con = 0, sol = 0;
for(int r = 1; r <= n; r++)
{
m[a[r]]++;
while(m.size() > k)
{
if(--m[a[l]] == 0) m.erase(a[l]);
l++;
}
sol += r - l + 1;
}
return sol;
}
int main()
{
int l, u;
cin >> n >> l >> u;
for(int i = 1; i <= n; i++)
cin >> a[i];
cout << solutie(u) - solutie(l - 1);
QED
}