Pagini recente » Cod sursa (job #39568) | Cod sursa (job #1258398) | Cod sursa (job #2078961) | Cod sursa (job #290743) | Cod sursa (job #1569478)
#include <fstream>
#include <unordered_map>
using namespace std;
ifstream fin("secv5.in");
ofstream fout("secv5.out");
int N, L, U;
unsigned int V[1100000];
unordered_map<unsigned int, int> H;
long long max_secv(int M)
{
H.clear();
long long sol = 0;
int lg = 0, dist = 0, pos = 1;
for (int i = 1; i <= N; ++i)
{
if (H[V[i]])
{
++H[V[i]];
++lg;
sol += 1LL * lg;
}
else
{
++H[V[i]];
++dist;
++lg;
if (dist > M)
{
while (dist > M)
{
--H[V[pos]];
if (!H[V[pos]])
{
--dist;
H.erase(V[pos]);
}
--lg;
++pos;
}
}
sol += 1LL * lg;
}
}
return sol;
}
int main()
{
fin >> N >> L >> U;
for (int i = 1; i <= N; ++i)
fin >> V[i];
fout << max_secv(U) - max_secv(L - 1) << '\n';
return 0;
}