Mai intai trebuie sa te autentifici.
Cod sursa(job #1574265)
Utilizator | Data | 20 ianuarie 2016 13:56:53 | |
---|---|---|---|
Problema | Secventa 5 | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.75 kb |
#include <iostream>
#include <fstream>
#include <unordered_map>
using namespace std;
typedef long long ll;
const ll MAXN = 1 << 20 + 1;
int n, l, u;
int a[MAXN];
ll cntSeq(int k) {
ll res = 0;
int cnt = 0;
int Li = 0;
unordered_map<unsigned int, int> H;
for (int i = 0; i < n; ++i) {
++H[a[i]];
while (H.size() > k) {
--H[a[Li]];
if (H[a[Li]] == 0) {
H.erase(a[Li]);
}
++Li;
}
res += i - Li + 1;
}
return res;
}
int main()
{
ifstream cin("secv5.in");
ofstream cout("secv5.out");
cin >> n >> l >> u;
for (int i = 0; i < n; ++i) {
cin >> a[i];
}
cout << cntSeq(u) - cntSeq(l - 1);
return 0;
}