Pagini recente » Cod sursa (job #1785558) | Cod sursa (job #1327450) | Cod sursa (job #1081906) | Cod sursa (job #267359) | Cod sursa (job #2730613)
#include <fstream>
#include <map>
using namespace std;
const int N = 1 << 20;
int n, l, u, v[N];
long long nr_secv(int l)
{
long long rez = 0;
int j = 0, nrd = 0;
map<int, int> nr;
for (int i = 0; i < n; i++)
{
nr[v[i]]++;
if (nr[v[i]] == 1)
{
nrd++;
}
while (j <= i && nrd > l)
{
nr[v[j]]--;
if (nr[v[j]] == 0)
{
nrd--;
}
j++;
}
rez += i - j + 1;
}
return rez;
}
int main()
{
ifstream in("secv5.in");
ofstream out("secv5.out");
in >> n >> l >> u;
for (int i = 0; i < n; i++)
{
in >> v[i];
}
out << nr_secv(u) - nr_secv(l - 1);
return 0;
}