Pagini recente » Cod sursa (job #1480452) | Cod sursa (job #2553758) | Cod sursa (job #1735710) | Cod sursa (job #2052402) | Cod sursa (job #2909642)
#include <fstream>
#include <map>
using namespace std;
const int MAX_N = 1 << 20;
int a[MAX_N + 1];
map<int, int> mp;
int n, l, u;
long long Count(int k) {
mp.clear();
int j = 1, cnt = 0;
long long answer = 0;
for (int i = 1; i <= n; i++) {
mp[a[i]]++;
if (mp[a[i]] == 1) {
cnt++;
}
while (j <= i && cnt > k) {
if (mp[a[j]] == 1) {
cnt--;
}
mp[a[j]]--;
j++;
}
answer += i - j + 1;
}
return answer;
}
int main() {
ifstream fin("secv5.in");
ofstream fout("secv5.out");
fin >> n >> l >> u;
for (int i = 1; i <= n; i++) {
fin >> a[i];
}
fout << Count(u) - Count(l - 1);
return 0;
}