Pagini recente » Cod sursa (job #3234827) | Cod sursa (job #2716716) | Cod sursa (job #556194) | Borderou de evaluare (job #1532968) | Cod sursa (job #2653748)
#include <fstream>
#include <unordered_set>
using namespace std;
const int NMAX = 1<<20;
int v[1 + NMAX];
unordered_set<int> hm;
int main()
{
ifstream in("secv5.in");
ofstream out("secv5.out");
int n, nr_sol = 0, l, u;
int x;
in >> n >> l >> u;
for (int i = 1; i <= n; i++)
{
in >> x;
if (hm.find(x) == hm.end())
{
hm.emplace(x);
v[i] = v[i - 1] + 1;
}
else
{
v[i] = v[i - 1];
}
}
for (int i = 1; i <= n - l + 1; i++)
{
for (int j = i + l - 1; j <= n; j++)
{
if (v[i] == v[i - 1])
{
if (v[j] - v[i - 1] + 1 >= l && v[j] - v[i - 1] + 1 <= u)
{
nr_sol++;
}
}
else
{
if (v[j] - v[i - 1] >= l && v[j] - v[i - 1] <= u)
{
nr_sol++;
}
}
}
}
out << nr_sol << '\n';
return 0;
}