Pagini recente » Cod sursa (job #358772) | Cod sursa (job #2600363) | Cod sursa (job #1128856) | Cod sursa (job #1886970) | Cod sursa (job #2443144)
#include <fstream>
#include <unordered_map>
using namespace std;
const int NMAX = (1 << 20) + 5;
int n, l, u, v[NMAX];
long long Query(int sz)
{
unordered_map <int, int> cnt;
long long ret = 0;
int p = 1;
for (int i = 1;i <= n;++i)
{
++cnt[v[i]];
while (cnt.size() > sz)
{
--cnt[v[p]];
if (cnt[v[p]] == 0)
cnt.erase(v[p]);
++p;
}
ret += i - p + 1;
}
return ret;
}
int main()
{
ifstream fin("secv5.in");
ofstream fout("secv5.out");
fin >> n >> l >> u;
for (int i = 1;i <= n;++i)
fin >> v[i];
fout << Query(u) - Query(l - 1) << "\n";
fin.close();
fout.close();
return 0;
}